传输层工作原理

一、概括

网络层可以把数据从一个主机传送到另一个主机,但是没有和进程建立联系。传输层就是讲进程和收到的数据联系到一起,使数据能够为应用服务。所以说传输层是主机才有的层次!简单的说传输层就是提供进程和进程之间的逻辑通信。

传输层中有两个好兄弟分别是大哥TCP和二哥UDP,他们之间的对比如表一所示:

传输层工作原理_第1张图片

表一

二、TCP协议介绍

1.TCP基本概念:

TCP是面向连接的传输层协议。

每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。

TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。可靠有序,不丢不重

TCP提供全双工通信。即数据可在同一时间双向传输,TCP报文段封装在IP数据报中。

2.TCP报文段首部格式如表二所示:

源端口号(16) 目的端口号(16)
序号(32)
确认号(32)
首部长度(4) 保留(6)

U

R

G

A

C

K

P

S

H

R

S

T

S

Y

N

F

I

N

窗口大小(16)
校验和(16) 紧急指针(16)

选项

表二

序号:发送端为每个字节进行编号,便于接收端正确重组

确认号:用于确认发送端的信息

首部长度:用它可以确定TCP首部数据结构的字节长度。一般情况下TCP首部是20字节,但首部长度最大可用扩展为60字节。

控制位:

URG:紧急位,紧急指针有效位

ACK:确认为,ps:只有当ACK=1时,确认序列号字段才有效:当ACK=0时,确认号字段无效。

PSH:紧迫位。标志位为1时,要求接收方尽快将数据段送达应用层。

RST:重置位。当RST值为1时,通知重新建立TCP连接。(相当于重启)

SYN:同步位,同步序号位,TCP需要建立连接时将这个值设置为1.

FIN:断开位。当TCP完成数据传输需要断开连接,提出断开连接的一方将这个值设置为1.

窗口大小:用于说明本地可接收数据段的数目,窗口大小是可变的。

校验和:用来做差控制(用来校验数据,它会检验发送和到达目的的数据,如果两次数据一样就可以反之就丢弃)。

紧急指针:这个和URG一起使用,但是要URG=1时才有效。

选项:在TCP首部可以有多达40个字节的可选信息。(跟首部长度有关,首部长度想到达多少个字节,就到达多少个字节)。

三、TCP三次握手

TCP建立连接的过程称之为三次握手,大致过程如图一所示:传输层工作原理_第2张图片

 图一

 TCP建立三次握手的具体过程到底是什么样子的呢?

TCP是面向连接的,就是说每次发送数据之前都要和对方一起建立一条可靠的连接,这个建立连接的过程分为3个步骤,这就叫做三次握手。

第一步:当客户端发送请求连接的报文时:seq序列号=x(x为随机) SYN=1(表示发送连接请求)

第二部:服务器端收到客户端发来的请求报文后,同意建立连接,则向客户端发送确认报文:seq序列号=y(这时服务器也会产生一个序列y,和客户端的序号不相关:ACK确认号=x+1(seq序列号x+1,表示确认收到了客户端的请求) ACK=1(表示这时条确认请求) SYN=1(同时也发送了一个建立连接的请求)

第三步:客户端进程收到服务器进程的确认后,还要向服务端给出确认,然后连接成功建立:seq序列号=x+1(这时客户端的序号为1) ACK确认号=y+1(表示确认收到了服务器的连接请求)ACK=1(表示这是确认报文)

四、TCP四次挥手

TCP断开连接的过程称之为四次挥手,大致过程如图二所示:

传输层工作原理_第3张图片

        图二

简单来说就是pc1要跟pc2断开连接,那么pc1向pc2发送断开连接的请求。pc2收到请求并进行确认。同理pc2也要发送一个断开连接的请求给pc1,pc1收到并回应确认识然后就正式断开连接了。

准确来说:

第一次挥手:Client发送Fin+Acknowledgement 给Server端,表示自己要断开连接,这个时候client端已经没有数据要发送了。
第二次挥手:Server接收到client发送的断开请求连接,那么这个时候Server需要发送一个Acknowledaement=1用于确定客户请求断开的信息成功接收了;有时候这个过程也会和第三次握手进行合并,就像上面展示的一样。
第三次挥手:Server如果所有的数据已经接收完毕。这个时候就会发送一个Fin=1,而Acknowledgement=0用于表示Server端已经没有数据要发送了。需要关闭连接。
第四次挥手:Client端需要发送一个Acknowledgement=1表示这个Client接收到了Server的关闭请求信息,这样一来双方的就都关闭了

五、UDP协议介绍

UDP概述:UDP在ip数1据服务之上增加了很少功能,即复用分用和差错检测功能。

1.UDP是无连接的减少开销和发送数据之前的延时

2.UDP使用最大努力交付,即不保证可靠交付。

3.UDP是面向报文的,适合一次传输少量数据的网络应用。

4.UDP无拥塞控制,适合很多实时应用。

传输层工作原理_第4张图片

 UDP报文的首部格式如下表三所示:

源端口号(16) 目的端口号(16)
UDP长度(16) UDP校验和(16)

UDP长度:用来指出UDP的总长度,为首部加上数据

校验和:用来完成对UDP数据的差错检验,它是UDP协议提供的唯一的可靠机制

六、常见的协议及其端口

TCP常用协议及端口:21-FTP-文件传输协议端口

22-Ssh-安全Shell服务

23-Telnet-telnet服务

25-SMTP-简单邮件传输协议

37-TIME-时间协议

80-HTTP-超文本协议

110-POP3-用于邮件接收

53-DNS-域名解析协议

69-TFTP-小文件传输协议

443-HTTPS-安全超文本传输协议

UDP常用协议及端口:161-SNMP-简单网络管理协议

69-TFTP-简单文件传输协议

53-DNS-域名解析协议

67-BOOTPS/DHCP-动态主机配置协议

你可能感兴趣的:(tcp/ip,p2p,网络协议)