Tcp协议

1.请求端(通常称为客户)发送一个SYN段指明客户打算连接的服务器的端口,以及初始序号(ISN,在这个例子中为1415531521)。这个SYN段为报文段1。

2.服务器发回包含服务器的初始序号的SYN报文段(报文段2)作为应答。同时,将确认序号设置为客户的ISN加1以对客户的SYN报文段进行确认。一个SYN将占用一个序号。

3.客户必须将确认序号设置为服务器的ISN加1以对服务器的SYN报文段进行确认(报文段3)。

发送数据

数据从接口发出时,第一个承接的设备是二层交换机,二层交换机识别最外层以太网封装的。会按照源MAC和目的MAC在局域网之间进行一个短距离的传输。传递给路由器。

路由器会获取到交换机传递来的数据。路由器是根据IP地址进行转发的,所以会解封装查看IP地址。确认好IP地址后,在其发送出去的时候会重新封装一层以太网。

最终数据会传递到服务器中。而服务器是一个七层的,同样会进行逐层的解封装,然后查看端口号对应的服务是否开放,应用程序对数据进行处理。之后服务器会给客户端进行响应,同样的流程进行封装和解封装。

断开连接

建立一个连接需要三次握手,而终止一个连接要经过4次握手。这由TCP的半关闭(halfclose)造成的。既然一个TCP连接是全双工(即数据在两个方向上能同时传递),因此每个方向必须单独地进行关闭。这原则就是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向连接。当一端收到一个FIN,它必须通知应用层另一端几经终止了那个方向的数据传送。发送FIN通常是应用层进行关闭的结果。

二、TCP的功能

TCP的主要功能包括:建立连接、数据传输、连接终止和错误控制。

(1)建立连接:在TCP中,需要建立三次握手(3-way handshake)来建立一个连接。三次握手的过程是:SYN(同步序列号)+ ACK(确认号)+ SYN+ACK+ PSH(推数据)-> ACK。通过这个过程,两个应用程序可以建立一条可靠的通信链路。

(2)数据传输:在连接建立后,TCP通过发送和接收数据包来进行数据传输。TCP将数据流分成数据段,并通过序列号对它们进行标识,以确保数据的完整性和可靠性。

(3)连接终止:当通信结束时,TCP通过四次挥手(4-way handshake)来终止连接。四次挥手过程是:FIN(结束)+ ACK(确认号)+ PSH(推数据)+ ACK -> ACK。通过这个过程,两个应用程序可以安全地关闭连接。

(4)错误控制:TCP使用校验和(checksum)来检测数据包在传输过程中的错误。当数据包被发送时,发送方会计算其校验和并将其附加到数据包中;当接收方接收到数据包时,它会计算校验和以检查数据包是否在传输过程中发生了损坏。如果校验和不匹配,接收方将通知发送方重新发送数据包。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值