转载

Java网络编程基础(二)

TCP

TCP是面向连接的丶可靠的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯.

如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。

TCP数据包中包括 序号和确认 ,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。

Java网络编程基础(二)

Java网络编程基础(二)

TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序(即应用层)。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。

UDP

UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。

UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。

端口号

数据链路和 IP 中的地址,分别指的是 MAC 地址(MAC地址是网卡地址)和 IP 地址。前者用来识别同一链路中不同的计算机,后者用来识别 TCP/IP 网络中互连的主机和路由器。在传输层也有这种类似于地址的概念,那就是端口号。端口号用来识别同一台计算机中进行通信的不同应用程序。因此,它也被称为程序地址。

HTTP请求的传输过程

Java网络编程基础(二)

一次完整http请求的7个过程

1.建立 TCP 连接(之前可能还有一次DNS域名解析)

2.客户端向服务器发送请求命令

3.客户端发送请求头信息

4.服务服务器应答器

5.返回响应头信息

6.服务器向客户端发送数据

7.服务器关闭 TCP 连接

Http请求协议报文结构

Java网络编程基础(二)

请求报文结构:

Java网络编程基础(二)

返回报文结构:

Java网络编程基础(二)

原文  https://segmentfault.com/a/1190000019390028
正文到此结束
Loading...