计算机网络

TCP与UDP的对比
(1)连接方面,TCP需要三次握手而UDP并不需要
(2)TCP有完善的拥塞控制机制,UDP没有
(3)UDP可以有无连接状态
(4)UDP分组首部开销更小

可靠性协议以及机制

检验和 用于检测分组中是否出现比特错误
定时器 用于超时/重传分组
序号 检测出一个分组的冗余副本
确认 通知发送方分组已经接收
否定确定 接收方通知发送方分组未能接收
窗口 发送方也被允许限制仅发送那些序号落在一个指定范围的分组

TCP/UDP
多路复用/多路分解

TCP的流量控制:
流量控制是一个速度匹配的服务,即发送方的发送速率与接收方的读取速率相匹配。

三次握手:
(1)每次ACK针对###对方###发过来的Seq进行加一并返回给对方。
(2)为啥是三次是三次握手:为了防止已经失效的连接请求重新打到了服务端。
(3)为啥需要初始化序列号:

四次握手:
(1)客户发送关闭请求
(2)服务端针对这个关闭连接的请求进行ACK
(3)服务端向客户端发送关闭信息
(4)客户端针针对服务端发送来的关闭信息进行ACK

四次握手的状态:
FIN_WAIT_1:
客户端发送关闭连接请求之后即进入FIN_WAIT_1状态,但客户端此时仍然可以接收消息。
FIN_WAIT_2:
客户端接收到服务端的ACK信息随即进入FIN_WAIT_2状态,并等待服务端发送FIN消息。
CLOSE_WAIT:
这种状态的含义其实是表示在等待关闭。怎么理解呢?当对方close一个SOCKET后发送FIN报文给自己,你系统毫无疑问地会回应一个ACK报文给对方,此时则进入到CLOSE_WAIT状态。接下来呢,实际上你真正需要考虑的事情是察看你是否还有数据发送给对方,如果没有的话,那么你也就可以 close这个SOCKET,发送FIN报文给对方,也即关闭连接。所以你在CLOSE_WAIT状态下,需要完成的事情是等待你去关闭连接。(被动方)
LAST_ACK:
它是被动关闭一方在发送FIN报文后,最后等待对方的ACK报文。当收到ACK报文后,也即可以进入到CLOSED可用状态了。(被动方)
TIME_WAIT:
表示收到了对方的FIN报文,并发送出了ACK报文,就等2MSL后即可回到CLOSED可用状态了。如果FINWAIT1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。(主动方)
TIME_WAIT存在的意义是防止最后一次ACK对方没有接收到需要进行重传。
CLOSED:
表示连接中断。

在四次挥手过程中,TCP的FIN和ACK消息可以是异步的,因为在接收到关闭连###接请求之后可以先把手头的数据处理完再进行ACK确认。

拥塞控制原理
通过超时或者3次冗余确认可被认为是网络拥塞的一个迹象。TCP会相应的减小其窗口长度。
2种控制方法:
(1)端到端拥塞控制
(2)网络辅助的拥塞控制:通过网络层构建(即路由器)

TCP拥塞控制:
首先看一下TCP连接的每一端的构成:接收缓存、一个发送缓存、几个变量。运行在发送方的TCP拥塞控制机制还需要跟踪一个额外的变量:拥塞窗口(用于控制发送速率)。

控制算法:
该算法主要包括三个部分:慢启动、拥塞避免、快速恢复;
慢启动和拥塞避免是TCP的强制的部分。
慢启动:
在慢启动阶段,TCP的发送速率是以指数进行增长。如果出现丢包则重新启动慢启动;如果速率进入慢启动阈值则进入拥塞避免方式;如果监测到三个冗余ACK,此时TCP执行快速重传并进入快速恢复 状态。
拥塞避免:
更加保守的增加CWND的值:一种通用的方式是每当收到一个ACK确认则增加CWND的值。当出现丢包或者三次冗余ACK的时候则CWND的值直接变成原来的一半,接下来进入快速恢复状态。
快速恢复:
在TCP处于快速恢复状态时候:每收到一个冗余确认则CWND的值加1。

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

推荐阅读更多精彩内容

  • 运输层协议概述 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是...
    srtianxia阅读 2,406评论 0 2
  • 一、基础概念 服务对象:进程 功能:逻辑通讯 载体:报文段 工作环境:端系统 运输层协议  TCP:为进程提供可靠...
    IT白阅读 390评论 0 0
  • 【计算机网络】传输层 传输层协议概述 传输层协议为运行在不同host上的进程提供了一种逻辑通信机制。使得端到端不需...
    666真666阅读 2,002评论 0 4
  • 本书结构是自顶向下的,所以请按下列顺序阅读: 1.计算机网络自顶向下--应用层2.计算机网络自顶向下--运输层3....
    牛富贵儿阅读 2,756评论 0 3
  • 计算机网络七层模型中,传输层有两个重要的协议:(1)用户数据报协议UDP (User Datagram Proto...
    Q南南南Q阅读 1,712评论 0 3