计算机网络(不断更新)

一、TCP的拥塞控制

1. 拥塞(congestion)

在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏。

  • 在计算机网络中的链路容量(即带宽)、交换节点中的缓存和处理机等,都是网络的资源。

出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降。

吞吐量/输入负荷.png

2. TCP拥塞控制算法

介绍四种拥塞控制算法前的假定条件:

  1. 数据是单方向传送,而另一个方向只传送确认。
  2. 接收方总是有足够大的缓存空间,因而发送方发送窗口的大小由网络的拥塞程度来决定。
  3. 以TCP报文段的个数为讨论问题的单位,而不是以字节为单位。

一共有四种算法:慢开始拥塞避免快重传快恢复

慢开始拥塞避免算法是1988年提出的TCP拥塞控制算法(TCP Tahoe版本)
1990年又增加了两个新的拥塞控制算法(改进TCP的性能),这就是快重传快恢复(TCP Reno版本)。

2.1 慢开始 + 拥塞控制

重传计时器超时:判断网络可能出现了拥塞。(但其实可能不是拥塞只是丢失)

慢开始+拥塞避免+重传计时器超时

误认为是拥塞会造成传输效率降低

2.2快重传

快重传算法可以让发送方尽早知道发生了个别报文段的丢失。

快重传提高吞吐量.png

快恢复.png

image.png

文字截图来源
引用:
1.https://www.bilibili.com/video/BV1L4411a7RN?from=search&seid=4447542063917012120

二、三次握手 && 四次挥手

1.TCP报文格式

确认位ACK是1位,而确认序号是32位


TCP报文格式

2. 三次握手

三次握手

为什么要三次握手而不是两次握手?

本质就是为了解决网络信道不可靠的问题,为了在不可靠的信道上建立可靠的连接。为了防止因为已失效的请求报文突然又传到服务器引起错误。(而且两次握手时,客户端知道自己收发正常,服务器端只知道自己接收正常。)

带具体细节的三次握手

经过三次握手之后

客户端和服务器端都进入了数据传输状态,tcp需要在不可靠的信道上保证可靠连接。


三次握手.png

几个问题面对:

  1. 一包数据可能被拆分成多包发送,如何处理丢包问题?
  2. 数据包到达先后不同,如何处理乱序问题?

为了处理这些问题,tcp为每一个连接建立了一个发送缓冲区,从建立链接后的第一个字节的序列号为0。后面每次字节的序列号增加1。发送数据时,从发送缓冲区取一部分数据组成发送报文,在其tcp头中会附带序列号和长度。接收端在收到数据后,需要回复确认报文。确认报文中的ACK = 接收序列号 + 长度。也就是下一包需要发送的起始序列号,这样一问一答的发送方式,能够使发送端确认发送的数据,已经被对方收到。发送端也可以一次性发送连续的多包数据,接收端只需要回复一次ACK就可以了。这样发送端可以把待发送数据分割成一系列的碎片,发送到对端。对端根据序列号和长度,在接收后重构出完整的数据。假设其中丢失了某些数据包,在接收端可以要求发送端重传,比如丢失了(100-199)这100个字节,接收端向发送端发送ACK=100的报文,发送端接收到后重传这段报文,接收端进行补齐。以上过程不区分客户端和服务端,tcp连接是全双工的,对两端来说均采用上述机制。

3. 四次挥手

四次挥手状态图

四次挥手

为什么客户端需要等待超时时间?

为了保证对方已收到ACK包。因为假设客户端送完最后一包ACK包后就释放了连接,一旦ACK包在网络中丢失,服务端将一直停留在最后确认状态(LAST ACK)。如果客户端发送最后一包ACK包后,等待一段时间,这时服务器端因为没有收到ACK包会重发FIN包,客户端会响应这个FIN包,重发ACK包并刷新超时时间。
这个机制跟三次握手一样,也是为了在不可靠的网络链路中,进行可靠的连接断开确认。

参考:

参考1
参考2

三、DNS解析过程

DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作

1. DNS解析过程

《图解TCP/IP》的内容

具体流程

  1. 在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
  2. 如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
  3. 如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
  4. 如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性
  5. 如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。 (递归)
  6. 如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。(迭代)

从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询。
摘自

2. DNS相关的一些

windows中可以利用nslookup来查看域名对应ip
ipconfig /all可以查看本机对应ns服务器的地址
ipconfig /displaydns可以查自己本地的DNS缓存

查看域名对应的ip

第一次是查浏览器缓存
访问某个域名会先查询本地dns缓存列表,当缓存列表的ip被恶意改变后,将无法通过该域名访问那个网站。

DNS服务器起到的作用不只是翻译官,还可以起到一些分配的作用,比如物理上位于北京的DNS服务器上记录的域名到IP的映射里对应的服务器很可能就是北京附近的,而在上海的DNS服务器则可以给一个上海附近的IP,这样可以提高一定的访问速度。(其实B站直播里面主线、备用线1、备用线2差不多就是这个原理)FROM

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容