TCP/IP协议族

216 阅读3分钟

TCP/IP是互联网相关的各类协议族的总称,是网络通信的基础

TCP/IP分层管理

分为:应用层、传输层、网络层、数据链路层

分层的好处:

  • 某些设计需要修改时,影响范围小,只需修改变动的层次
  • 简化设计,处于应用层上的应用可以只考虑分派给自己的任务,不需弄清对方的传输任务

各层作用:

应用层 面向用户,提供应用服务,如HTTP、FTP、DNS等。

传输层 对上层应用层,为网络连接中的计算机提供数据传输,有TCP、UDP两个协议

网络层 处理网络上流动的数据包,规定了传输路线,并把数据包传送给对方,如IP协议。

数据链路层 处理连接网络的硬件部分,包括控制操作系统、硬件的设备驱动、网卡等。

利用TCP/IP协议族进行网络通信时,发送端从应用层往下走,层层包装,接收端则是相反的往上走到应用层,层层解包。

以HTTP协议为例,如下图:

1.应用层 DNS解析域名查找IP地址,HTTP生成请求报文

2.传输层 TCP协议分割HTTP请求报文,确保准确传输,进行三次握手,建立TCP连接

3.网络层 IP协议 根据ARP协议查出MAC地址,一边中转一边传送

4.数据链路层 加入以太网协议头,并进行CRC编码,为最后的数据传输做准备

5.服务器处理HTTP请求报文,返回HTTP响应报文

传输层协议TCP 、UDP

区别

  • TCP(Transmission Control Protocol,传输控制协议),是一种面向连接的、可靠的、基于字节流的传输层通信协议。

    在接收发送数据前,必须先和对方建立可靠的连接,也就是三次握手。

    会对报文进行分割、重组,并保证数据的顺序和正确性。

    提供拥塞控制和流量控制。拥塞控制主要来避免包丢失和超时重传,一旦发生就采用快速重传算法,将当前速度变为一半。

  • UDP(User Data Protocol,用户数据报协议),提供一种无连接、简单、不可靠的信息传送服务。

    在接收发送数据前,不用建立连接。

    不保证数据的顺序和正确性。

    不提供拥塞控制和流量控制。

    传输速度快。

TCP三次握手

服务端处于 LISTEN状态主动监听

1.客户端发送一个带SYN标志的数据包给服务端,处于SYN-SENT状态

2.服务端收到后回传一个带SYN/ACK标志的数据包确认信息,处于SYN-RCVD状态

3.最后客户端在回传一个带ACK标志的数据包,处于ESTAVLISHED状态,服务端收到 ACK后,也处于ESTABLISHED状态

TCP四次分手

1.客户端发送一个FIN,关闭传输,然后处于FIN-WAIT-1状态,

2.服务端返回ACK,处于CLOSED-WAIT状态

3.服务端关闭传输,发送FIN

4.客户端现处于FIN-WAIT2,回传ACK,然后处于TIME-WAIT状态

最后都CLOSED