【计算机网络原理】第三章 传输层

(2)登记端口号,1024~49151——也是固定分配,使用该范围的端口号需要在IANA登记,以防止重复  

(3)客户端口号或短暂端口号,留给客户进程选择暂时使用

无连接服务与面向连接服务

无连接服务

数据传输之间无需对端进行任何信息交换,直接构造传输层报文端并向接收端发送

——UDP

面向连接服务

在数据传输之前,需要双方交换一些控制信息,建立逻辑连接,然后再传输数据,数据传输后还需要拆除连接

——TCP

二,传输层的复用和分解


多路复用与多路分解

支持众多应用进程公用同一个传输层协议,并能够将接收到的数据准确交付给不同的应用进程

在这里插入图片描述

DCP式

DCP的多路复用和多路分解

靠DCP套接字<目的IP地址,目的端口号>判断给哪个端口的应用程序

TCP式

TCP套接字 <源IP地址,源端口号,目的IP地址,目的端口号>

与DCP的区别就是TCP式的多路复用和多路分解是面向连接服务

即着重分清源端与目的端的连接关系

三,停——等协议与滑动窗口协议


可靠数据传输基本原理

实现措施
  1. 差错检测:利用差错编码实现数据包传输过程中的比特差错检测

  2. 确认:接收方向发送方反馈接收状态

  3. 重传:发送方重新发送接收方没有正确接收的数据

  4. 序号:确保数据按序提交

  5. 计时器:解决数据丢失问题——规定的时间没收到,确认丢失

停——等协议

  • 主要特点:

    每发送一个报文段后就停下来等待接收方的确认

    这就是停——等

  • 基本工作进程

  1. 发送方发送经过差错编码和编号的报文段,等待接收方的确认

  2. 若接收方查得差错检测无误同时序号正确,则接收报文段并向发送方发送ACK,否则丢弃报文段并向发送方发送NAK

  3. 接收方收到ACK,继续发送剩余报文段

    接收方收到NAK,重发刚发送的报文段

滑动窗口协议

停——等协议的主要性能问题

停——等机制降低了信道的利用率

解决方法

流水线协议或管道协议——允许发送方在没有收到确认前连续发送多个分组

流水线协议的改进

增加分组序号范围

发送方和(或)接收方必须缓存多个分组

滑动窗口协议便是典型流水线协议

俩种最具代表性的滑动窗口协议:
  1. 回退N步(GBN)协议

    发送端窗口较大,可以在未得到确认前连续发送多个分组;但接收窗口仅为1,未按序到达的分组或某个分组出错,都会使发送方重新发送

  2. 选择重传(SR)协议

    接收方窗口>1,缓存正确到达但失序分组,仅要求发送方重传未被接收方确认的分组,等缺失分组到达后一并向上层按序提交

    即只要分组内不出现错误就缓存下来,获得全部分组在按序发送

四,用户数据报协议(UDP)


无连接,不可靠

UDP数据报结构

  1. 源与目的端口号:用于UDP实现复用和分解

  2. 长度字段:字节数——首部和数据总和

  3. 校验和:接收方用来检测该报文段是否出现差错

UDP校验和

  1. 对所有参与运算的内容(包括UDP报文段)按16位求和

  2. 求和过程中的进位与和的最低位再加

  3. 最后取反码

在这里插入图片描述

五,传输控制协议(TCP)


TCP报文段结构

实现数据分段传输、可靠传输、流量控制、避免网络拥塞

TCP连接管理

连接建立——三次握手
  1. SYN连接请求

    同步请求,在连接建立时用来同步序号

  2. SYNACK确认

    同步确认

  3. ACK确认

    由客户端进行最后一次确认

  4. 握手成功,双方开始数据传输

  • 当SYN=1而ACK=0时,表明这是一个连接请求报文段

  • 对方若同意建立连接,则应在响应的报文段中使SYN=1和ACK=1

  • ACK确认:ACK等于1时确认号字段才有效

  • TCP规定,连接建立后所有传送的报文段都必须将ACK置1

断开连接——四次挥手

  • 终止FIN:用来释放一个连接,当FIN=1,表明报文段的发送方数据已发送完毕,并要求释放传输连接
TCP可靠数据传输
  1. TCP的可靠数据传输实现机制包括差错编码、确认、序号、重传、计时器(上述有提到)

  2. TCP的可靠数据传输基于滑动窗口协议,但发送窗口大小是动态变化

    流程:

    (1)封装TCP报文段,包括校验,序号…

    (2)发出一个报文段后启动一个计时器,通过计时器判断是否重传

    (3)通过校验和发现数据差错

    (4)通过序号重新排序,丢弃重复的报文段

    (5)流量控制

总结
  • 对于框架原理只能说个大概,真的深入某一部分具体的代码和实现方式就只能写出一个框架,许多细节注意不到。

  • 算法方面还是很薄弱,好在面试官都很和蔼可亲,擅长发现人的美哈哈哈…(最好多刷一刷,不然影响你的工资和成功率???)

  • 在投递简历之前,最好通过各种渠道找到公司内部的人,先提前了解业务,也可以帮助后期优秀 offer 的决策。

  • 要勇于说不,对于某些 offer 待遇不满意、业务不喜欢,应该相信自己,不要因为当下没有更好的 offer 而投降,一份工作短则一年长则 N 年,为了幸福生活要慎重选择!!!

第一次跳槽十分忐忑不安,和没毕业的时候开始找工作是一样的感受,真的要相信自己,有条不紊的进行。如果有我能帮忙的地方欢迎随时找我,比如简历修改、内推、最起码,可以把烦心事说一说,人嘛都会有苦恼的~

祝大家都有美好的未来,拿下满意的 offer。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值