传输层的协议介绍

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

     二、TCP协议

     三、TCP报文段

     四、三次握手

     五、状态转换和安全问题

     六、四次挥手

     七、TCP连接

     八、UDP协议

     1)UDP协议

     2)UDP报文的首部格式

     3)常用的UDP端口号及功能

 

 

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

TCP(Transmission  Control  Protocol)

传输控制协议

UDP(User  Datagram  Protocol)

用户数据报协议

xmodem数据传输协议代码_TCP

 

二、TCP协议

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

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

TCP报文段

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

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

三、TCP报文段

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

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

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

SYN:   同步序号位,TCP需要建立连接时,将该值设为“1”。

ACK:   确认序号位,当该位为“1”时,用于确认发送方的数据。

FIN:   当TCP断开连接时将该位置射为“1”。

源端口号(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连接时,需要客户端和服务器共发送3个包。

第一次:客户端发送初始序号x和syn=1请求标志

第二次:服务器发送请求标志syn,发送确认标志ACK,发送自己的序号seq=y,发送客户端的确认序号ack=x+1

第三次:客户端发送ACK确认号,发送自己的序号seq=x+1,发送对方的确认号ack=y+1

xmodem数据传输协议代码_xmodem数据传输协议代码_02

五、状态转换和安全问题

半关闭

当TCP链接中,A向B发送FIN请求关闭,另一端B回应ACK后,并没有立即向A发送FIN,A处于半连接状态(半开关),此时A可以接收B发送的数据,但A不能向B发送数据。

半连接

发生在TCP三次握手中

如果A向B发起链接,B按照正常情况响应,但A不进行三次握手,这就是半连接。

半连接攻击:半连接会造成B分配的内存资源就这么一直耗着,直到资源耗尽。(SYN攻击)

半打开

如果一方关闭或者异常关闭(断电、断网),而另一方并不知情,这样的链接称为半打开。处于半打开连接,如果双方不进行数据通信,是发现不了问题的,只有通信才能真正的察觉到这个连接已经处于半打开状态,如果双方不传输数据的话,仍处于连接状态的一方就不会检测另一方已经出现异常。

解决方法:

如何解决半打开问题,引入心跳机制就可以察觉半打开。

如果需要发数据的话,这边收到之后,其实发现这个连接并不存在了,就会回复RST包报告,这个时候就需要重新建立连接了!

六、四次挥手

TCP断开连接的过程称为四次挥手。

第一次挥手:客户端发出释放FIN=1,自己序列号seq=u,进入FIN-WAIT-1状态

第二次挥手:服务器收到客户端的后,发出ACK=1确认标志和客户端的确认号ack=u+1,自己的序列号seq=v,进入CLOSE-WAIT状态

第三次挥手:客户端收到服务器确认结果后,进入FIN-WAIT-2状态。此时服务器发送释放FIN=1信号,确认标志ACK=1,确认序号ack=u+1,自己序号seq=w,服务器进入LAST-ACK(最后确认态)

第四次挥手:客户端收到回复后,发送确认ACK=1,ack=w+1,自己的seq=u+1,客户端进入TIME-WAIT(时间等待)。客户端经过2个最长报文段寿命后,客户端CLOSE;服务器收到确认后,立刻进入CLOSE状态。

xmodem数据传输协议代码_UDP_03

七、TCP连接

常见的TCP端口号及功能

端口          协议                                       说明

21               FTP             FTP服务器所开放的控制端口。

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

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

80               HTTP        超文本传输协议。

110             POP3          用于接收邮件。

八、UDP协议

1)UDP协议

无连接,不可靠的传输协议。

花费的开销小。

2)UDP报文的首部格式

源端口号(16)

目标端口号(16)

UDP长度(16)

UDP校验和(16)

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

校验和:

3)常用的UDP端口号及功能

端口          协议                                       说明

69TFTP            简单文件传输协议。(网卡都带TFTP服务,必须把69端口号放空)

111             RPC                远程过程调用。(用的不多)

123             NTP                 网络时间协议。(搭一个NTP服务,使时间保持一致)