TCP是面向连接的丶可靠的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯.
如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。
TCP数据包中包括 序号和确认 ,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。
TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序(即应用层)。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。
UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。
UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。
数据链路和 IP 中的地址,分别指的是 MAC 地址(MAC地址是网卡地址)和 IP 地址。前者用来识别同一链路中不同的计算机,后者用来识别 TCP/IP 网络中互连的主机和路由器。在传输层也有这种类似于地址的概念,那就是端口号。端口号用来识别同一台计算机中进行通信的不同应用程序。因此,它也被称为程序地址。
一次完整http请求的7个过程
1.建立 TCP 连接(之前可能还有一次DNS域名解析)
2.客户端向服务器发送请求命令
3.客户端发送请求头信息
4.服务服务器应答器
5.返回响应头信息
6.服务器向客户端发送数据
7.服务器关闭 TCP 连接
Http请求协议报文结构
请求报文结构:
返回报文结构: