计算机网络(运输层)

1.UDP和TCP的对比

  1. UDP 和 TCP 是TCP/IP体系结构运输层中的两个重要协议
  2. 当运输层采用面向连接的 TCP 协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的可靠信道。
  3. 当运输层采用无连接的 UDP 协议时,这种逻辑通信信道是一条不可靠信道。
用户数据报协议UDP(User Datagram Protocol)
  1. UDP 支持单播、多播以及广播换句话说,UDP支持一对一,一对多,以及一对全的通信
  2. UDP对应用进程交下来的报文既不合并也不拆分,而是保留这些报文的边界换句话说,UDP是面向应用报文的
传输控制协议TCP(Transmission Control Protocol)
运输过程

发送方

TCP会把应用进程交付下来的数据块看作是一连串无结构的字节流,TCP并不知道这些待传送的字节流的含义
并将他们编号,并存储在自己发送缓存中
TCP会根据发送策略,提取一定量的字节构建TCP报文并发送

接收方

一方面从所接受到的TCP报文段中,取出数据载荷部分并存储在接收缓存中;一方面将接收缓存中的一些字节交付给应用进程
TCP不保证接收方应用进程所收到的数据块与发送方发送的数据块,具有对应大小的关系(例如,发送方应用进程交给发送方的TCP共10个数据块,但接收方的TCP可能只用了4个数据块,就把收到的字节流交付给了上层的应用进程,但接收方收到的字节流必须和发送方应用进程发出的字节流完全一样)
接收方的应用进程必须有能力识别收到的字节流,把它还原成有意义的应用层数据

TCP向上层提供面向连接的可靠传输服务

2.TCP的流量控制

具体的介绍 https://www.bilibili.com/video/BV1c4411d7jb?p=60&share_source=copy_web

举例
总结

3.TCP的拥塞控制

具体的介绍https://www.bilibili.com/video/BV1c4411d7jb?p=61&share_source=copy_web

两个算法完整示意图
快重传和快恢复
快重传

快恢复

改进后的整体算法的示意图

4.TCP超时重传时间的选择

懒得听了.....

5.TCP可靠传输的实现

TCP可靠传输的实现

6.TCP的运输连接管理

概念
TCP的连接建立
  1. TCP 建立连接的过程叫做握手
  2. 握手需要在客户和服务器之间交换三个 TCP 报文段。称之为三报文握手
  3. 采用三报文握手主要是为了防止已失效的连接请求报文段突然又传送到了,因而产生错误
TCP的连接建立要解决以下三个问题
  1. 使TCP双方能够确知对方的存在
  2. 使TCP双方能够协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳选项以及服务质量等)
  3. 使TCP双方能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配
TCP使用“三报文握手”建立连接

TCP 连接的建立采用客户服务器方式。
主动发起连接建立的应用进程叫做TCP客户 (client)。
被动等待连接建立的应用进程叫做TCP服务器 (server)。
“握手”需要在TCP客户端和服务器之间交换三个TCP报文段


三报文握手

为什么TCP客户进程最后还要发送一个普通的TCP确认报文段?能否使用“两报文握手”建立连接?

两报文握手

为了防止已经失效的连接请求报文段突然又传到服务端,因而产生错误”,这种情况是:一端(client)A发出去的第一个连接请求报文并没有> 丢失,而是因为某些未知的原因在某个网络节点上发生滞留,导致延迟到连接释放以后的某个时间才到达另一端(server)B。本来这是一个> 早已失效的报文段,但是B收到此失效的报文之后,会误认为是A再次发出的一个新的连接请求,于是B端就向A又发出确认报文,表示同> 意建立连接。如果不采用“三次握手”,那么只要B端发出确认报文就会认为新的连接已经建立了,但是A端并没有发出建立连接的请求,因> 此不会去向B端发送数据,B端没有收到数据就会一直等待,这样B端就会白白浪费掉很多资源。
所以并不多余,这是为了防止已失效的连接请求报文段突然又传送到了TCP服务器,因而导致错误

总结
TCP的连接释放
  1. TCP 连接释放过程比较复杂
  2. 数据传输结束后,通信的双方都可释放连接
  3. TCP 连接释放过程是四报文握手
TCP通过“四报文挥手”来释放连接
  1. TCP 连接的建立采用客户服务器方式。
  2. 主动发起连接建立的应用进程叫做TCP客户 (client)。
  3. 被动等待连接建立的应用进程叫做TCP服务器 (server)。
  4. 任何一方都可以在数据传送结束后发出连接释放的通知
四报文挥手

TCP客户进程在发送完最后一个确认报文后,为什么不直接进入关闭状态?而是要进入时间等待状态?

为什么不直接进入关闭状态?

因为时间等待状态以及处于该状态2MSL时长,可以确保TCP服务器进程可以收到最后一个TCP确认报文段而进入关闭状态
另外,TCP客户进程在发送完最后一个TCP确认报文段后,在经过2MSL时长,就可以使本次连接持续时间内所产生的所有报文段都从网络中消失,这样就可以使下一个新的TCP连接中,不会出现旧连接中的报文段

7.TCP报文段的首部格式

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

推荐阅读更多精彩内容

  • 运输层协议概述 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是...
    srtianxia阅读 2,410评论 0 2
  • 一、运输层协议 网络层只把分组发送到目的主机,但是真正通信的并不是主机而是主机中的进程。传输层提供了进程间的逻辑通...
    MachinePlay阅读 812评论 0 0
  • 一、基础概念 服务对象:进程 功能:逻辑通讯 载体:报文段 工作环境:端系统 运输层协议  TCP:为进程提供可靠...
    IT白阅读 397评论 0 0
  • 计算机网络-运输层 运输层协议概述 进程间的通信 运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,...
    CandyTong_阅读 493评论 0 1
  • 运输层协议为运行在不同主机上的应用进程之间提供了逻辑通信的功能。 运输层与网络层关系:网络层提供了主机之间的逻辑通...
    我就是我啊阅读 102评论 0 0