目录
一、TCP和UDP协议
二、TCP报文段
三、TCP三次握手
四、TCP四次挥手
五、UDP协议介绍
六、常见TCP/UDP端口
1、TCP端口:
2、UDP端口:
TCP/IP协议中的传输层协议:
TCP,传输控制协议
UDP,用户数据报协议
TCP协议:
TCP是面向连接的、可靠的进程到进程通信的协议
TCP提供全双工服务,即数据可以同一时间双向传输
TCP报文段:TCP将若干个字节构成一个分组,叫报文段,TCP报文段封装在IP数据报中
UDP协议:UDP协议是无连接、不保证可靠性的传输层协议。发送端不关心发送的数据是否到达目标主机、数据是否出错等,收到数据的主机也不会告诉发送方是否收到了数据,它的可靠性由上层协议来保障。传输数据速度更快,效率更高
源端口号:发送方进程的端口号
目标端口号:接收端进程的端口号。接收端收到数据段后,根据这个端口号来确定把数据送给哪个应用程序的进程。
序号:发送端为每个字节进行编号,便于接收端正确重组。
当TCP从进程接收数据字节时,把他们分片成数据段储存在发送缓存中,并且对每一个字节进行编号。当数据到达目的地后,接收端会按照这个序号把数据重新排序,保证数据的正确性。
确认号:对发送端的确认信息
接受段响应消息时会用它来告诉发送端这个序号之前的数据段都已收到,如确认号是x,就是表示钱x-1个数据段都已经收到。
首部长度:用它可以确定TCP首部数据结构的字节长度。一般情况下TCP首部都是二十字节,但首部长度最大可以扩展为60字节。
控制位:
URG: 数据中存在紧急的数据
ACK:确认位,只有当ack=1时,确认序列号字段有效,当ACK=0时,确认号字段无效。
PSH:急迫位,标志位为1时表示整个数据包都很紧急,要加快送到应用层
RST:重置位,当RST显示为1时,表示要重新建立连接
SYN:同步连接。表示进行连接
FIN:断开位,提出断开连接一方将这个设为1
窗口大小:用来表示想收到的每个TCP数据段的大小。值得大小是可变的,网络通畅时窗口值变大以加快传输速度,网络不稳定时,减小窗口值,保证可靠传输。
校验和:16位TCP头。源机器基于数据内容计算一个数值,收信息机要与源机器数值 结果完全一样,从而证明数据的有效性。检验和覆盖了整个的TCP报文段:这是一个强制性的字段,一定是由发送端计算和存储,并由接收端进行验证的。
紧急指针:指向后面是优先数据的字节,在URG标志设置了时才有效。如果URG标志没有被设置,紧急域作为填充。加快处理标示为紧急的数据段。
选项:长度不定,但长度必须为1个字节。如果没有选项就表示这个1字节的域等于0。
数据:该TCP协议包负载的数据。
1 首先pc1与pc2建立连接报文时,seq=x(系列号为x)SYN=1(申请建立通讯连接)进入SYN_SEND状态.
2,pc2收到pc1请求报文后,同意建立连接,并向pc1发送确认报文。Seq=y(这是pc2的序列号)Ack+1(表示收到pc1的请求,Seq系列号x+1),同时再向pc1发送连接请求(SYN=1)并确认这条请求(ACK=1)进入SYN_RECV状态.
3,pc1收到pc2的确认后,还要向pc2给出确认,然后就连接成功建立
Seq序列号=x+1(这时pc1的序号为1)ACK确认号=y+1(表示确认收到了pc2的连接请求)
ACK=1(表示这时确认报文)进入Established状态
1,pc1发送FIN=1,ACK=1给pc2,表示断开连接,没有数据在进行传输
2,pc2收到pc1就请求给予回应(ACK=1),表示确认pc1断开连接的请求已经接受到了。
3,pc2如果所以的数据也都传输完毕此前是pc1单方向断开数据连接,这时FIN=1,ACK=1给pc1,表示无数据发送,请求断开连接。
4,pc1收到pc2消息后,发送一个ACK=1,表示已经收到关闭请求消息,这样双方都关闭了。
UDP协议:
无连接、不可靠的传输协议
花费的开销小
UDP报文的首部格式
UDP长度:用来指出UDP的总长度,为首部加上数据
效验和:用来完成对UDP数据的差错效验,它是UDP协议提供的唯一的可靠机制。
FTP:20/21 FTP服务器所开发的控制端口
TELNET:23 用于远程登录,可以远程控制管理目标计算机
SMTP:25 SMTP服务器开放的端口用于发送邮件
HTTP:80 超文本传输协议
POP3:110 用于邮件的接收
TFTP:69 简单文件传输协议
RPC:111 远程过程调用
NTP:123 网络时间协议