计算机网络学习笔记(5.传输层 6.应用层)

文章目录

  • 第五章 传输层
    • 传输层概述
    • UDP协议
    • TCP协议特点和TCP报文段格式
    • TCP连接管理
    • TCP可靠传输
    • TCP流量控制
    • TCP拥塞控制
    • 第五章总结
  • 第六章 应用层
    • 网络应用模型
    • 域名解析系统DNS
    • 文件传输协议(FTP)
    • 电子邮件
    • 万维网和HTTP协议
    • 第六章总结

第五章 传输层

传输层概述

研究进程之间的逻辑通信问题计算机网络学习笔记(5.传输层 6.应用层)_第1张图片
传输层

  • 主机才有的层次
  • 网络层的首部校验和只能校验头部,不能校验数据部分,传输层可以实现数据的检错,这样就不需要网络层再检测数据部分了

计算机网络学习笔记(5.传输层 6.应用层)_第2张图片
传输层的两个协议
计算机网络学习笔记(5.传输层 6.应用层)_第3张图片
传输层的寻址与端口

  • 这里的端口是软件端口/逻辑端口,标识主机进程,与路由器的硬件端口不同
  • 端口号只需要在主机内有唯一性即可,不同主机之间的端口没有联系

计算机网络学习笔记(5.传输层 6.应用层)_第4张图片
计算机网络学习笔记(5.传输层 6.应用层)_第5张图片

UDP协议

用户数据报协议UDP概述

  • UDP不保证可靠交付,靠网络层实现可靠交付
  • UDP面向报文是指,UDP对于应用层传下的报文,既不合并也不拆分,对报文的长度不改变,保留应用报文的边界,
  • 因此需要应用层选择合适的报文长度,否则就会导致报文传输到网络层过长,需要分片,降低传输效率;
  • 无连接,不可靠,面向报文,适合实时,首部开销小

计算机网络学习笔记(5.传输层 6.应用层)_第6张图片
UDP首部格式

  • UDP的数据已经进入到主机了,因此也就不需要地址了,靠端口号来识别进程
  • 源端口号可有可无,需要回复就给,不需要回复就不给,目的端口号必须有
  • 16位UDP长度指整个UDP数据报长度(首部+数据),单位字节
  • 16位UDP检验和检测整个UDP数据报是否有错,错就丢弃,分用时找不到目的端口号,也会对其报文,并发送ICMP差错报告报文

计算机网络学习笔记(5.传输层 6.应用层)_第7张图片
UDP校验

  • 图中的UDP数据报的首部开头又多了个伪首部,这个伪首部很像IP数据报的首部
  • 伪首部只会在计算校验和时才会出现,不向下传递也不向上提交
  • 伪首部:
    • 第三个字段固定为0,
    • 第四个字段表示协议,封装这个UDP报文的IP数据报的首部协议字段是17,所以这里也是17
    • 第五个字段UDP长度,是UDP首部+数据部分的长度,不包括伪首部

计算机网络学习笔记(5.传输层 6.应用层)_第8张图片
注意:接收端中的检验和是经过计算后的检验和
计算机网络学习笔记(5.传输层 6.应用层)_第9张图片

TCP协议特点和TCP报文段格式

TCP协议特点

  • 1.面向连接(虚连接):虚连接指这并不是实际的物理连接,实际的物理连接应该是层层封装解封装,TCP连接就好像是进程和进程直接连接了一样(疑问,难道TCP协议不是层层封装通信的??)
  • 2.只能点对点,无法广播和多播
  • 3.可靠有序,不丢不重
  • 4.全双工,收发都有缓存
  • 5.面向字节流

计算机网络学习笔记(5.传输层 6.应用层)_第10张图片
TCP发送数据举例

  • 发送方将要发送文件,会将发送的数据按照字节排好序,并进行编号
  • 将要发送的时候,提前把发送的字节放入TCP的缓存中,
  • 发送数据时,从缓存中按顺序取出一定的字节数,加上TCP首部,形成完整报文段发送出去

计算机网络学习笔记(5.传输层 6.应用层)_第11张图片
TCP报文段首部格式

  • 考试重点,答题中经常考察对某些字段的理解
  • TCP报文段主要包含:首部,数据部分
  • 首部包含:固定首部,选项,填充(凑4字节的整数倍,填全0)
    • 源端口,目的端口,即字面意思
    • 序号:将要发送的字节都有自己的编号(123456789…),序号字段填的就是当前的TCP报文中数据部分的第一个字节的编号,比如上图中的首部中序号字段填的就是1,如果发送456号数据,序号字段就是4
    • 确认号:接收方收到了123号字节,并且知道下一个字节应该是编号4,所以回复的报文中,确认字段为4,表示期望收到4号字节
    • 数据偏移:TCP报文段的数据起始处距离整个TCP报文段的起始处的距离,一个数代表4B,其实就是首部的长度,比如这里的数值为15,则表示首部的长度为60字节;为什么还要添加首部长度,可能还会有选项字段和填充字段,所以首部长度不确定
    • 6个控制位:PSH和RST几乎不会考,了解即可
    • 窗口:B给A发送数据,并且在窗口字段规定了B最大能接收的数据量,A收到报文以后,知道了下次给B发送数据不要超过B的最大接收量;比如,B给A发送的确认为701,窗口为1000,那么A下次就可以给B发送701-1700号字节
    • 检验和:与UDP一样,检验首部+数据,检验时加上12字节的伪首部,伪首部的第四个字段是协议字段,UDP协议中是17,TCP协议中是6
    • 紧急指针:URG=1时才有意义,表示从TCP数据部分的开头向后有多少字节是紧急的数据,其实就是标记了紧急数据在数据部分中的位置和字节数
    • 选项:最开始是用于记录TCP报文字段中数据部分的最大长度,后来又加了几个字段,所以选项的长度也不确定,如果不满首部字节数为4的整数倍,还需要填充字段补充一下,了解即可

计算机网络学习笔记(5.传输层 6.应用层)_第12张图片

TCP连接管理

TCP连接三次握手,

你可能感兴趣的:(408学习专区,学习,网络)