TCP连接的三路握手

        本文内容参考《Unix网络编程》,大概描述了TCP连接的三次握手过程,这是我看到的最清楚的描述,记录在这里,希望能帮助到大家对于TCP连接过程的理解。


        传输控制协议(TCP)是TCP/IP协议簇里非常重要的一个协议。它提供客户与服务器之间的连接,并且提供可靠的数据传输功能。关于这个协议的具体规定,请参考相关文献。这里简单讲述一下三路握手。


        建立一个TCP连接时会发生以下几个过程:

        1.服务器必须做好接受外来的连接的准备。这个过程通过调用socket、bind和listen这三个函数来完成。

        2.客户通过调用connect发起主动打开。这个过程中,客户发送一个SYN分节告诉服务器,客户将在连接中发送数据的初始序列号。

        3.服务器确认客户的SYN,同时自己发送一个SYN,包含服务器将在该连接中发送的数据的初始序列号。

        4.客户确认服务器的SYN。

        非常形象的一个描述:

        建立TCP连接就好比一个电话系统。socket函数等同于有电话可用。bind函数是在告诉别人你的电话号码,这样他们可以给你打电话。listen函数是打开电话铃声,这样当有外来呼叫时你可以听到。connect函数要求我们知道对方的号码并拨打它。accept函数就好比是被呼叫者接听电话了。当呼叫者听到对方接听之后,就相当于最后一次确认,然后就可以通话了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值