(目录

一、TCP/IP协议簇的传输层协议

1、TCP和UDP协议

TCP(Transmission Control Protocol):传输控制协议 面对连接的,可靠的进程到进程通信的协议。TCP提供全双工服务,即数据可在同一时间双向传输,每个TCP都有发送缓存和接受缓存,用来临时存储数据。(通信双方之间在进行通信之前要先建立连接,例如打电话)。 UDP(User Datagram Protocol):用户数据报协议 是无连接、不保证可靠性的传输层协议,也就是说发送端不关心发送的数据是否到达目标主机、数据是否出错等,收到数据的主机也不会告诉发送方是否收到了数据,它的可靠性由上层协议来保障。(传输数据速度更快、效率更高)


2、UDP报文的首部格式

d1873bbd4d8a9fc92a61d25c3e89774.png

UDP长度:用来指出UDP的总长度,为首部加上数据 校检和:用来完成对UDP数据的差错检验,它是UDP协议提供的唯一可靠机制


3、TCP报文段

7759a664c90aef3a54244dfa82ca8a9.png TCP报文段的首部格式

1)源端口号:发送方进程对应的端口号。 2)目标端口号:对应的是接收端的进程的端口号,接收端收到数据段后,根据这个端口号来确定把数据送给哪个应用程序的进程 3)序号:发送端为每个字节进行编号,便于接受端正确重组。 4)确认号:用于确认发送端的信息。这个是用来告诉发送端这个序号之前的数据段都已经收到了,如确认号是X,就表示前X-1个数据段都已收到。 5)首部长度:用它可以确定TCP首部数据结构的字节长度。一般情况下TCP首部是20字节,但首部长度最大可以扩展为60字节。 6)保留:作为扩展位,目前没有用到。 7)控制位: URG:紧急位。紧急指针有效位。 ACK:确认位。只有当ACK=1时,确认序列号字段才有效;当ACK=0 时,确认号字段无效。 PSH:急迫位。标志位为1时,要求接收方尽快将数据段送达应用层。 RST:重置位。当RST值为1时,通知重新建立TCP连接。 SYN:同步(连接)位。同步序号位,TCP需要建立连接时将这个值设为1。 FIN:断开位。当TCP完成数据传输需要断开连接时,提出断开连接的一方将这个值设为1。 8)窗口值:说明本地可接收数据段的数目。这个值的大小是可变的,当网络通畅时接收端响应消息会将这个窗口值变大以加快传输速度,当网络不稳定时减小这个值可保证网络数据的可靠传输,TCP中的流量控制机制就是依靠变化窗口的大小实现的。比如下载速度从一开始的几KB逐渐提升到几MB 的过程。 9)校验和:用来做差错控制。字段检验的范围包括首部和数据这两部分。数据段在发送时和到达目的地时会进行校验和计算,若这两次的校验和一致,则说明数据基本是正确的,否则将认为该数据已被破坏,接收端将丢弃该数据。 10)紧急指针:和URG配合使用,当URG=1时有效。 11)选项:在TCP首部可以有多达40字节的可选信息.例如:最大报文段长度MSS(Maximum Segment Size).MSS告诉对方TCP:“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节”。


二、TCP的“三次握手”与“四次挥手”

1、三次握手

如下图所示 68a9f0cdd07373da343464443284777.png 注:ESTABLISHED是已连接状态

2、四次挥手

如下图所示 4436b1c1464d35dc75f4eed66af1fe8.png 若只进行图中1、2过程,则PC1和PC2进入半断开状态,PC2仍可以向PC1发送消息

三、TCP、UDP常用端口号及其功能

1、常用的TCP端口号及其功能

端口 协议 说明
21 FTP FTP服务器所开放的控制端口
22 SSH 安全Shell服务
23 TELNET 用于远程登录,可以远程控制管理目标计算机
25 SMTP SMTP服务器开放的端口,用于发送邮件
53 DNS 域名系统,建立连接,区域传送
80 HTTP 超文本传输协议
443 HTTPS 用SSL/TLS对数据进行加密和解密,HTTP进行传输
110 POP3 用于邮件的接受

2、常用的UDP端口号及其功能

端口 协议 说明
69 TFTP 简单文件传输协议
111 RPC 远程过程调用
123 NTP 网络时间协议,用于电脑自动校准时间
161 SNMP 简单网络管理协议
53 DNS 域名系统,建立连接,区域传送