传输层协议介绍

一、TCP协议介绍&UDP协议介绍

1、TCP/IP协议族的传输层协议

TCP(Transmission Control Protocol)传输控制协议

UDP(User Datagram Protocol)用户数据报协议

2、TCP协议

TCP是面向连接的、可靠的进程到进程通信的协议

TCP提供全双工服务,即数据可在同一时间双向传输

TCP将若干个字节构成一个分组,叫报文段(segment)

TCP报文段封装在IP数据报中

3、TCP特性

(1)工作在传输层

(2)面向连接协议

(3)全双工协议

(4)半关闭(四次挥手)

(5)错误检查

(6)将数据打包成段,排序(分片)

(7)确认机制

(8)数据恢复,重传

(9)流量控制,滑动窗口

4、UDP协议&UDP特性

(1)工作在传输层

(2)提供不可靠的网络访问

(3)非面向连接协议

(4)有限的错误检查

(5)传输性能高

(6)无数据恢复特性

(7)花费的开销小

5、TCP报文格式

(1)源端口号(16比特)

(2)目标端口号(16比特)

计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个

进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、

目标端口是用16位表示的,推算个数为2^16个,即65536(0-65535)

(3)序号(32比特)

表示本报文段所发送数据的第一个字节的编号,发送端为每个字节进行编号,便于接收端正确重组

,每2^32字节就会序列号回绕,从0开始无限循环

(4)确认号(32比特)

表示接收方期望收到发送方下一个报文段的第一个字节数据的编号,用于确认发送端的信息

(5)首部长度(4比特)

表示TCP报文段的首部长度,共4位,由于TCP首部包含一个长度可变的选项部分,需要指定这个

TCP报文段到底有多长。它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远,该字段

单位是32位,4位二进制最大表示15,所以数据偏移也就是TCP首部最大60字节

(6)保留(6比特)

(7)控制位(各1比特)

URG(紧急位)

表示本报文段中发送的数据是否包含紧急数据,后面的紧急指针字段(urgent pointer)

只有当URG=1时才有效

ACK(确认位)

表示是否前面确认号字段是否有效,只有当ACK=1时,前面的确认号字段才有效,TCP规定,

连接建立后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段

PSH(急切位)

提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间。

如果为1,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序

不将接收到的数据读走,就会一直停留在TCP接收缓冲区中

RST(重置位)

如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),

必须释放连接,然后再重新建立连接,或者说明上次发送给主机的数据有问题,

主机拒绝响应,带RST标志的TCP报文段称为复位报文段

SYN(同步位)

建立连接时使用,用来同步序号,当SYN=1,ACK=0时,表示这是一个请求建立连接的报文段,

当SYN=1,ACK=1时,表示对方同意建立连接,SYN=1,说明这是一个请求建立连接或同意

建立连接的报文。只在前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段

FIN(断开位)

表示通知对方本端要关闭连接了,标记数据是否发送完毕,如果FIN=1,即可释放连接,

带FIN标志的TCP报文段称为结束报文段

(8)窗口大小(16比特)

表示现在允许对方发送的数据量,用于说明本地可接收数据段的数目,窗口大小是可变的

(9)校验和(16比特)

用来完成对TCP数据的差错检验

(10)紧急指针(16比特)

提供额外的可靠性紧急指针:标记紧急数据在数据字段中的位置

(11)选项

其最大长度可根据TCP首部长度进行推算,TCP首部长度用4位表示,选项部分最长为

(2^4-1)*4-20=40字节

6、UDP报文的首部格式

(1)源端口号(16比特)

(2)目标端口号(16比特)

(3)UDP长度(16比特)

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

(4)UDP校验和(16比特)

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

7、常用TCP端口号及其功能

端口       协议                                          说明

 21         FTP            FTP服务器开放的控制端口(20是传输端口)

 23       TELNET      用于远程登录,可以远程控制管理目标计算机

 25        SMTP              SMTP服务器开放的端口,用于发送邮件

 80        HTTP                                 超文本传输协议

110       POP3                                   用于邮件接收

8、常用UDP端口号及其功能

端口       协议                       说明

 69        TFTP           简单文件传输协议

 111        RPC               远程过程调用

 123        NTP               网络时间协议

二、TCP三次握手&TCP四次挥手

1、TCP建立连接的过程称为三次握手

客户机CLOSED,服务器CLOSED,客户机主动打开

(1)客户机发送SYN报文(seq=x,SYN=1)

客户机SYN-SENT同步已发送,服务器LISTEN收听

(2)服务器发送SYN+ACK报文(seq=y,ack=x+1,SYN=1,ACK=1)

服务器SYN-RECEIVED同步收到

(3)客户机发送ACK报文(seq=x+1,ack=y+1,ACK=1)

客户机ESTAB-LISHED已建立连接,服务器ESTAB-LISHED已建立连接

数据传送

2、TCP断开连接的四次挥手

客户机ESTAB-LISHED已建立连接,服务器ESTAB-LISHED已建立连接

数据传送

客户机主动关闭

(1)客户机发送FIN/ACK报文(FIN=1,ACK=1,seq=u)

客户机FIN-WAIT-1终止等待1

(2)服务器发送ACK报文(ACK=1,seq=v,ack=u+1)

服务器CLOSE-WAIT关闭等待,客户机FIN-WAIT-2终止等待2

(3)服务器发送FIN/ACK报文(FIN=1,ACK=1,seq=w,ack=u+1)

服务器LAST-ACK最后确认

(4)客户机发送ACK报文(ACK=1,seq=u+1,ack=w+1)

客户机TIME-WAIT时间等待(等待2MSL),服务器CLOSED,客户机CLOSED

3、有限状态机(扩展)

(1)CLOSED没有任何连接状态

(2)LISTEN侦听状态,等待TCP端口的连接请求

(3)SYN-SENT在发送连接请求后,等待对方确认

(4)SYN-RECEIVED在收到和发送一个连接请求后,等待对方确认

(5)ESTAB-LISHED代表传输连接建立,双方进入数据传送状态

(6)FIN-WAIT-1主动关闭,主机已发送关闭连接请求,等待对方确认

(7)FIN-WAIT-2主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求

(8)TIME-WAIT完成双向传输连接关闭,等待所有分组消失

(9)CLOSE-WAIT被动关闭,收到对方发来的关闭连接请求,并已确认

(10)LAST-ACK被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失

(11)CLOSING双方同时尝试关闭传输连接,等待对方确认

客户端先发送一个FIN给服务端,自己进入FIN-WAIT-1状态,等待接收服务端报文,有三种可能

只有服务端的ACK

只有服务端的FIN

基于服务端的ACK,又有FIN

三、状态码

404,数字四开头,你自己电脑的问题(网络未连接,域名输入错误)

503,504,数字五开头,服务器的问题,别人的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值