传输层协议--TCP与UDP

TCP/IP协议簇的传输层协议:

1、TCP与UDP

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

2、TCP报文段

TCP报文段
●TCP将若干个字节构成一个分组,叫报文段
●TCP报文段封装在IP数据报中
在这里插入图片描述

源端口号:发送方进程的端口号。
目标端口号:接收端进程的端口号。接收端收到数据段后,根据这个端口号来确定把数据送给哪个应用程序的进程。

序号:发送端将每个字节进行编号,便于接收方正确重组。
当TCP从进程接收数据字节时,把它们分片成数据段存储在发送缓存中,并对每一个字节进行编号。当数据达到目的地后,接收端会按照这个序号把数据重新排列,保证数据正确。

确认号:对发送方的确认消息。
接收端响应消息的时候会用它来告诉发送端这个序号的数据段都已经收到,如果确认号是X,就是表示前X-1个数据段都已收到。

首部长度:用来表示TCP数据包头长度,一般20字节,但是首部长度最多可以扩大到60字节(根据选项来扩展)。

控制位:
URG: 紧急位。紧急指针有效位,配合紧急指针使用。
ACK: 确认位。当ACK=1时,确认序列号字段才有效,为0时,无效。
PSH: 急迫位。标志位为1时,要求接收方尽快将数据段送达应用层。
RST:重置位。当RST值为1时,通知重新建立TCP连接。
SYN:同步(连接)位。同步序号位,TCP需要建立连接时将这个值设为1。
FIN: 断开位。当TCP完成数据传输需要断开连接时,提出断开连接的一方将这个值设为1。

窗口大小:说明本地可接受数据段的数目。这个值的大小是可变的,当网络通畅时接收端响应消息会将这个窗口值变大以加快传输速度,当网络不稳定时减小这个值可保证网络数据的可靠传输,TCP中的流量控制就是依靠变化窗口大小来实现的。比如下载速度从一开始的几KB逐渐升到几MB的过程。控制网速用的。

校验和:用来做差错控制。字段检验的范围包括首部和数据这两部分。数据段在发送时和到达目的地时会进行校验和计算,若值不一致,会认为该数据被破坏,接收端将丢弃该数据。

紧急指针:和URG配合使用,当URG=1时有效。

选项:在TCP首部可以有多达40字节的可选信息。例如,最大报文段长度MSS(Maximum Segment Size)。MSS告诉对方TCP:我的缓存所能接收的报文段的数据字段最大是MSS个字节。

TCP的三次握手

在这里插入图片描述
TCP握手协议 :
1.发送SYN报文(seq=x,SYN=1)
2.发送SYN+ACK报文(seq=y,ACK=x+1,SYN=1,ACK=1)
3.发送ACK报文(seq=x+1,ACK=y+1,ACK=1)

TCP的四次断开

举个栗子:把客户端比作男孩,服务器比作女孩。通过他们的分手来说明“四次挥手”过程。
TCP断开协议 :
1.发送FIN/ACK(FIN=1,ACK=1)
2.发送ACK报文(ACK=1)
3.发送FIN/ACK报文(FIN=1,ACK=1)
4.发送ACK报文(ACK=1)

为什么“握手”是三次,“挥手”却要四次?

TCP建立连接时之所以只需要"三次握手",是因为在第二次"握手"过程中,服务器端发送给客户端的TCP报文是以SYN与ACK作为标志位的。SYN是请求连接标志,表示服务器端同意建立连接;ACK是确认报文,表示告诉客户端,服务器端收到了它的请求报文。

即SYN建立连接报文与ACK确认接收报文是在同一次"握手"当中传输的,所以"三次握手"不多也不少,正好让双方明确彼此信息互通。

TCP释放连接时之所以需要“四次挥手”,是因为FIN释放连接报文与ACK确认接收报文是分别由第二次和第三次"握手"传输的。为何建立连接时一起传输,释放连接时却要分开传输?

TCP的常用端口号及其功能

TCP 协议名称 端口号 作用
Telnet 专司终端模拟 23 它为用户提供了在本地计算机上完成远程主机工作的能力
SMTP 简单邮件传输协议 25 它帮助每台计算机在发送或中转信件时找到下一个目的地
HTTP 超文本传输协议 80 超文本传输协议,是我们浏览网页、看在线视频、听在线音乐等必须遵循的规则
FTP 文件传输协议 20、21 文件传输协议 FTP [ File Transfer Protocol ]使得主机间可以共享文件
DNS 域名系统 53 Tcp 53 因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串
HTTPS 超文本传输安全协议 443 HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版
SSH 安全壳协议 22 SSH 为建立在应用层和传输层基础上的安全协议
POP3 邮局协议版本3 110 本协议主要用于支持使用客户端远程管理在服务器上的电子邮件
NTP 网络时间协议 123 它是用来同步网络中各个计算机时间的协议
IMAP4 第四版因特网信息存取协议 143 IMAP4协议与POP3协议一样也是规定个人计算机如何访问互联网上的邮件服务器进行收发邮件的协议,但是IMAP4协议同POP3协议相比更高级

UDP的常用端口号及其功能

UDP 协议名称 端口号 作用
SNMP 简单网络管理协议 161 该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况
TFTP 简单文件传输协议 69 TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务
DNS 域名系统 53 因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串
BooTPS/DHCP 动态主机配置协议 67 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段

猜你喜欢

转载自blog.csdn.net/zhangyuebk/article/details/112261023