网页吃饭吃饭

udp概况

面向无连接,不可靠连接,此处连接指持续性连接状态。
udp连接,服务器先启动,生成一个套接字,客户端启动,创建一个套接字,客户端在套接字中加入服务器端的ip与端口号,向服务器端发起连接,连接成功后,互通信息,客户端关闭套接字。

tcp概况

面向连接,可靠的协议
tcp连接 服务器先启动,生成一个套接字,客户端启动,创建一个套接字,客户端在套接字中加入服务器端的ip与端口号,向服务器端发起连接,经过三次握手,服务器端再次创建一个套接字专用于和客户端连接连接成功后,互通信息,客户端关闭套接字,服务器端关闭套接字,中断通信。

运输层解决的问题:

1,怎样在会丢失和损坏数据的情况下进行可靠传输;
2.控制运输层传输速率以免拥堵,和从拥堵中恢复正常。

运输协议是在主机的应用进程之间进行,在端系统中实现。

运输层最低限度的2种服务:

1.将主机之间的交付扩展到进程之间的交付称为运输层的多路复用和多路分解。
2.tcp和udp通过运输层首部报文段差错检查字段进行完整性检查。
udp仅提供此两种服务。
tcp还提供以下几种服务:
1.提供可靠数据传输,通过流量控制、序号、确认和定时器确保正确、有序传输。这样就将不可靠的ip协议服务转换为可靠服务。
2.拥塞服务;防止一条tcp连接过多使用流量,而影响到主机之间的通信。

运输层不是直接将数据交给进程,而是先交个套接字,在交给进程。报文中有标识符,通过标识符确定交个哪个套接字。运输层从套接字接收数据,生成报文段,交付网络层,称为多路复用。反之,称为网络分解。
套接字的标识符就是ip+端口号

udp协议只提供多路复用和多路分解及及少量的差错检错,近似的可以认为与ip协议直接连接。
udp首部只有4个字段,源端口号,目的地端口号、长度、检验和。
校验和就是把报文中的16比特字相加后取反,此时取反得出的值就是校验和。接收方将接收的的字节与校验和相加,结果是111111111,就没有出现错误,如果出现0,就是有错误。udp可以发现错误,但不能处理错误,只能把出错的数据舍弃。

tcp连接

tcp连接与断开:建立连接3个包,断开连接4个包。

建立连接3个包:客户端请求建立连接,服务端确认建立连接,服务端请求建立连接,客户端同意建立连接。此后开始数据通信。
断开连接4个包:客户端发出请求断开连接,服务端确认断开连接,服务器请求断开连接,客户端确认断开连接。

数据通信

单个数据段

基本通信角度
当发送方发送一个数据,接收方在一定时间内,会给与确认,没有收到确认,发送方会重发数据,但由于网络原因,在这个时间内,发送方没有接受到确认,发送方会重发数据,这样接受方会受到多个一样的数据,为了放弃重复的数据,引入序号机制
重发时间:往返时间加偏差,比这个值稍大即可。重发超时都是0.5秒的整数倍,偏差最小是0.5秒,所以重发时间最小为1秒,一般初始重发时间不知往返时间,设置为6秒左右。若等不到确认,重发时间将以2倍,4倍时间增长。在重发一定次数后,还是等不到确认,发送方将终止连接,并通知应用终止通信。

一次发送多个数据段

窗口机制

多个数据段通信角度
在建立连接同时,双发确定发送包的大小,两端会在tcp头部写入适应自己的包的大小,选二者最小值。如一方省略,ip包长度选不大于576字节的值(ip头部20字节,tcp头部20字节,mss 536字节)
以前tcp连接是发送方发一个包,接收方给与确认之后,发送方才发下一个包,收网络延迟,影响效率,引入窗口机制,依次可以发窗口中的多个包,无需先得到接收方的确认,接收方将依次对接收到包向发送方进行确认,没有收到包就不会对该包及其后的包进行确认,所以当接收方收到一个包的确认,就代表接收方收到了此包以前的所有包,当客户端收到包的确认,窗口就移动到此序列号,窗口中的数据要在客户端进行缓存,当接到确认之后才从中去除。接收方在没有接收到想要的包时,会对最近接受的包发确认,发送方连续收到3次此确认时,则认为确认包之后的包丢失,重发。

流量控制

发送方、接收方双端角度
接受端吐过接受到一个无关的包,此包占用接受端缓存空间,且占用处理时间,接收方就不能接受到应该接受的包,tcp提供一种机制,要发送发按照接受方的接受能力,发送包。这就是流量控制。接收方向发送方通知自己的就收数据大小,发送方的窗口大小不得超过此值。tcp首部有一字段专用指定窗口大小。如果接收方出现缓存区溢出现象,接收方会发出减小窗口的通知。发送方据此调整窗口大小。为防止接收方发出的调整窗口大小的通知丢失,发送方会不是发出一个窗口探测的数据段。

慢启动

整体通信角度
如果同行一开始,发送大的数据,网络可能瘫痪,为避免这种情况,引入慢启动机制。在发送端定义了“拥塞窗口”的概念,在慢启动开始时,“拥塞窗口”大小设置为1个数据段,发送数据后,得到确认,“拥塞窗口”的值增加1,并与接收端发来的窗口比较大小,取较小值。如果采用重发超时机制,拥塞窗口将以1,2,4指数增长,未防止网络拥塞,慢启动阀值,当超过阀值,拥塞窗口将以(1个数据段字节/拥塞窗口字节)*1个数据段字节的比例增加。tcp通信开始时,并没有设置阀值,只是在超时重发时设置为拥塞窗口的一半。

网络层提供主机之间的逻辑通信。网络层不能保证运输层报文段机密性,运输层可加密处理。网络层协议也叫ip协议,提供尽力而为服务,交付主机之间的报文段,但不确保可靠连接,称为不可靠服务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值