计算机网络

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

一、应用层

1.HTTP

http协议现在web的主要协议,客户端和服务器端通过tcp协议建立连接。完成http协议过程中,服务器具有两份套接字,一份欢迎套接字,一份连接套接字,欢迎套接字用来建立tcp连接,连接套接字用来传输报文,每个对象对应一个响应报文。http协议的可以选择采用持续性和非持续性连接。
请求报文格式:
请求行-----》方法 URL 版本 GET /somedir/page.html HTTP/1.1
首部行 首部字段名: 值 Host: www.comeschool.edu

空行
实体主体
采用GET方法,表单内容存在URL中,POST方法将表单内容放入实体
响应报文格式与请求报文类似,首部行变为状态行-----》版本 状态码 状态码信息(短语)
状态码
1xx 请求信息
2xx 成功状态。200-请求成功
3xx 重定向状态。301-请求对象被永久移动,新URL在响应报文location中
4xx 客户端错误。400-请求无法被理解 404-请求文档不在服务器
5xx 服务器错误状态。 505-服务器不支持HTTP协议版本
HTTP协议为无状态协议,因此web应用通常使用cookie,session,token来记录用户状态,验证用户身份。
使用web缓存技术降低服务器的压力。浏览器的请求首先被定向到web缓存器,如果没有副本则与服务器连接。缓存技术往往会导致双方数据不一致。条件GET使得缓存服务器向web服务器发送请求,响应报文状态行为304时表示可以使用。

2.FTP

FTP使用两个TCP连接,端口20为数据连接,21为控制连接。控制连接用于在两主机间传输控制信息,数据连接是非持续的

3.SMTP

在TCP连接建立后SMTP还会进行自己的“握手”,握手首部与邮件报文首部是两种不相关的首部,邮件报文首部包含在握手协议中的DATA中。用户发送邮件到服务器和服务器发送邮件到服务器使用SMTP协议,因此SMTP又是一个拉协议。获取邮件方可以使用POP3,IMAP,HTTP获取服务器的邮件。

4.DNS

DNS用来将域名映射到IP地址。DNS提供主机别名和邮件服务器别名,方便用户记忆。负载分配将繁忙的站点的多个服务器较为均匀的响应客户端的请求。

二、运输层

运输层为不同主机上进程间提供逻辑通信,网络层提供了主机间的逻辑通信。运输层将应用层报文分组附加上运输层首部(报文段),网络层将报文段封装成网络层分组(数据报)。运输层协议服务:可靠数据传输,吞吐量,定时,安全性。运输层与进程之间存在套接字作为桥梁,通过端口号实现数据定向传送到专用套接字。UDP通过目的端口号,ip定位,tcp通过目的和源的四元组定位,同一主机不同进程的端口号必然不同,不同主机的IP必然不同。

1.UDP

UDP首部提供源和目的端口号总报文长度和校验和,校验和通过全部相加,溢出回卷,最后取反取得。

2.TCP

可靠数据传输协议:发送方持续发送带有序号和校验和的报文,上限为窗口长度N,接收方接收报文,并返回对应的ACK。SR不行,利用计时器重发。
GBN采用累计确认,一个ACK能确认之前所有序列的报文,发送方收到失序或者重复报文丢弃分组,并发送前一个最近已确认的ACK,超时后发送方将自动重复发送窗口。
SR:接收方也维持一个窗口,二者之间由于丢包导致双方对已确认报文信息产生不同步,重复发送发送方窗口内未被确认,但是接收方已确认,因此发送方要对已确认报文回复确认ACK。当窗口长度大于序号空间一半时可能会产生接收方不知道发送方发送的分组是属于旧序号,还是新序号,接收方要对[rcv_base-N,rcv_base-1]的报文回应ACK。
SR和GBN的ACK存在差异:SR发送收到报文的ACK,GBN可以发送最近报文ACK。出错率低适合GBN,链路容量大适合SR

TCP报文:序号(32bit)就是发送的数据首字节在数据流的位置,不包含TCP头部,与初始序号和报文数据大小有关。确认号(32bit)就是希望收到的下一字节的序号。S_SEQ = R_ACK,R_ACK = S_SEQ+数据大小
接收窗口字段:用于流量控制
首部长度字段:指示TCP首部长度(32bit为单位)由于选项字段的原因是可变的。
选项字段:用于收发双方协商最大报文长度(MSS:通常根据最初确定的由本地发送主机发送的最大链路层长度(MTU通常为1500)MSS = MTU - TCP/IP首部(一般40字节)),或高速网络环境下用作窗口调节因子使用,首部字段还定义了时间戳
6bit标志字段:ACK用于指示确认字段是有效的。RST,SYN,FIN用于连接建立和拆除。push,urg使用较少。
预估往返时间:EstimateRTT = (1-a)EstimateRTT + aSampleRTT;a参考值0.125;
SampleRTT:一般仅在某一时刻测量,且不计算重传的报文,报文被发出到被确认时间
DevRTT = (1-b)DevRTT+b |SampleRTT-estimateRTT| 用于估算sampleRTT偏离程度
TimeoutInterval = EstimateRTT + 4 DevRTT
对一个报文的三个冗余ACK也会造成重传,TCP重传最小未确认序号报文,并将下次超时间隔设置为2倍
流量控制:rwnd = RcvBuffer - [lastByteRecv - lastByteRead]
lastByteSent - lastByteAcked <= rwnd
同时当接收方窗口为0时,接受方继续发送只有一个字节的报文段,会被接收方确认。最终缓存开始清空,确认报文将含有一个非零rwnd值,避免发送方无法确定何时发送报文。
TCP连接:1 TCP SYN报文段 :SYN置1,选择初始序列号,不包含应用层数据。
2 SYNACK报文段:服务器分配缓存和变量(导致易受到SYN洪泛),向客户TCP发送允许连接报文段----》SYN置1,ACK = 初始序列号+1,选择自己的初始序列号
3 客户分配缓存和变量SYN置0,ACK = 初始序列号+1,同时可以携带数据,之后的报文SYN都置0.
当有ACK时,ACK位要置1;
连接中止: (1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。
(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。
(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。
在这里插入图片描述
拥塞控制:链路不能以超过R/2

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值