一文详解计算机网络TCP/UDP协议,三次握手原理

什么是TCP和UDP协议?

IP是网络层协议,面向无连接,即无需与目的主机建立连接,可以直接发送数据。主要目的就是为了提高数据传输效率,至于目标主机是否收到或数据是否丢失,IP协议并不负责,由上一层传输层进行可靠性控制。

传输层两个重要协议分别是TCP和UDP,传输层并不都是负责可靠性的,具体要看使用哪一种协议。TCP是面向连接的可靠性传输,UDP是非面向连接的不可靠传输。

例如,TCP是一个负责任的快递,将货物送达要等待收件人打开货物并确认签字,而UDP只负责将货物放到家门口,也不会通知你,至于包裹发错、丢失和UDP都没有关系。

端口

在传输层协议中,一定要理解什么是端口,这里的端口是指逻辑上的端口,而非交换机、路由器等物理端口。端口号一共是65536个,编号为0~65535,一般平时编程测试使用1024以后端口,因为0~1023被知名的程序软件占用了,比如常见的SSH是22端口,http网站默认80端口,ftp文件传输为443端口。

为什么要用端口,比如有一个城堡,城堡里面有很多门,不同的门有不同的功能,正门是统治阶级贵族使用,还有普通工作人员的入口,还有垃圾处理的通道,还有秘密逃生通道,不同的通道有不同功能。

对于计算机来说,接收到一个字符串“Hello World!”,那么这个应该是QQ接收还是微信接收,所以发送信息时,还要指定目标主机的端口,我们的数据是发送给哪个服务的。

三次握手建立连接

三次握手是TCP协议,需要和目标服务器通信前建立连接,否则,服务器地址错误或者服务器未开机,直接发送数据就会造成丢失。

比如,我要和小明借钱,但是要先铺垫一下。“小明,你好啊,吃了吗,我有点小事不知当讲不当讲。”,小明很热情,“咱们都是兄弟,有啥不能讲,有困难尽管提!”,“好吧,我这个月工作绩效不好,借我点钱还房贷。”……

这就是三次握手建立连接的过程。

比如,我们是客户机,要给服务器发送数据,比如服务器IP为192.168.1.10,端口是8080。

第一步:SYN为同步位,确认ACK初始为0,seq为传送数据时第一个数据字节序号x。

第二步:服务器应答同步SYN=1,确认ACK=1,确认号ack=x+1,自己的序列seq=y。

第三步:客户机表示我收到了服务器的应答,而后,双方就可以愉快的通信了。

因此,也可以看出TCP协议建立连接的过程导致了效率降低,在很多实时性要求较高的领域,比如实时音视频聊天大多采用UDP协议,即时某个时刻网络较差,导致音频有干扰,视频不清晰,对双方影响都不是很大。要根据实际情况进行协议选择。

四次握手释放连接

一旦数据传输结束,通信双方都可以主动释放连接。

比如,客户端A先要关闭连接:

第一步:发送FIN=1,seq=u,等待服务器B的确认,自己要关闭连接。

第二步:服务器进行确认ACK=1,确认号ack=u+1。自己的报文序号seq=v。

第三步:B也要向A发送FIN表明自己也要关闭,ack=u+1,因为A并没有继续发送数据。

第四步:A要向B发出确认ACK=1。

双方经过2MSL(Maximum Segment Lifetime 报文最大生存时间)后才真正释放连接。

简单来说,男女双方煲电话粥,A说,没什么事我要挂了,B先说,“好的”,对A的信息进行确认,然后再向A发一条消息,“我也要挂了”。然后A要进行确认,“OK,没问题。”,而后,双方静静等待30s,没有人再说话,同时按下关闭键,结束通话。

TCP流量控制和拥塞控制

很多时候,我们都认为数据传输越快越好,然而,如果速度过快,接收方处理不及时就可能会造成信息丢失。因此,TCP通过滑动窗口机制控制流量。TCP采用一个计时器,如果对方发送零窗口通知,TCP就等待一个时间,直至对方有空闲窗口再发送数据。

就像我们养了一条很能吃的松树,我们喂给松树一碗松果,10分钟后查看一下,如果松果没了继续添加满一碗,如果松果没有吃完,证明松树现在不饿,暂时不需要添加新的松果。

拥塞控制就是要考虑现实的网络性能,如果需要传输的信息量特别大,要消耗巨大的网络资源,超出现有网络负载能力。TCP拥塞控制会采用慢启动方式,不要一开始就传递巨量的数据。

相关推荐


展开阅读全文

页面更新:2024-03-01

标签:计算机网络   协议   目的   松果   松树   数据传输   可靠性   端口   详解   原理   服务器   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top