图解TCP/IP阅读笔记

一. TCP/IP基础知识

在这里插入图片描述

应用层

HTTP,SMTP(邮件),
FTP(文件传输)
TLNET,SSH(远程登陆)
SNMP 网络管理

表示层

HTML 属于表示层的内容
MIME(邮件格式)
MIB(网络管理传输数据)

会话层

传输层

  • TCP
    优点:
  1. 面向有连接的传输层,可以保证两端通信主机之间的通信可达
  2. 能够处理在传输过程中丢包,传输数据乱
  3. 可以有效利用带宽,环节网络拥塞
    缺点:
  4. 为了建联与断联,至少需要7次的收包发包,导致流量的浪费,不利于视频会议的等场合使用
  • UDP
    面向无连接的协议
  1. 不关心分组数据包是否传到了对端

网络层

包含协议:

  1. IP
    负责将分组数据包转发到目的主机,不具备重发功能,属于非可靠传输协议
  2. ICMP
    一旦分组在转发途中无法到达目的地,就会给发送端发送给一个异常的通知。
  3. ARP
    从分组数据包的IP地址中解析物理地址(MAC地址)

数据链路层

是硬件与操作系统之间的接口,传输的是帧,

物理层

负责传输数据的硬件
负责把二进制的0/1转换为实际的通信媒介传输的数据格式,比如电压的高低,灯光的亮灭,电波的强弱

数据发送/接受流程

用邮件发送早上好的数据流向

在这里插入图片描述

接受流程

接受流程是发送的逆序

数据链路层

主机收到以太网包后会从包的首部找到MAC地址,看是否是发送给自己的包,如果不是那么丢弃数据,是的话再查看数据类型,看是IP还是ARP,如果包含了一个无法识别的数据类型那么就丢弃。

IP模块处理

IP模块收到IP数据包后会查询IP地址是否是自己,是的话,查询上层协议,是UDP给UDP是TCP给TCP,如果是路由器一般会需要借助陆游控制表。调查应该送达的主机或者路由器后再转发数据

TCP模块
  1. 计算校验和,判断数据是否被破坏
  2. 检查是否按照顺序号接受数据
  3. 检查端口号 确定具体的应用程序
  4. 数据接收完毕后,给发送端发送一个确认回执,如果这个信息没到发送端,发送端会认为没法送到而一直发送
应用程序的处理

解析数据 获知收件人地址是谁。不是自己的话,返回一个无此收件地址的报错信息

二. 数据链路层

在这里插入图片描述

无线网络

PPP 协议

IP协议

IPV4协议

  1. 是32位地址
    可以表示2^32次方个地址
  2. IP地址是由网络地址+主机地址

IP地址分类

  1. A类地址
    首位以0开始,前八位是网络地址,后24位是主机地址
    0.0.0.0 ~ 127.0.0.0是A类的网络地址,后24位是主机地址
  2. B类地址
    以10开始,前16位是网络地址
  3. C类地址
    以110开头,1~24是网络标识位置后八位是主机地址
    192.168.0.0~255.255.255.0
  4. D类地址
    以1110开头,1~32位是网络地址,没有主机表示,常用于多播
    224.0.0.0 ~ 255.255.255.255

广播地址

将一个IP地址的主机地址部分全部置为1

网络层

传输层

如何识别一个通信:
必须要 源IP地址,目标IP地址,协议,源端口号 目标端口号 完全相同才是一个通信

TCP

实现了数据传输时各种控制功能,可以进行丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制
是一种面向有连接的协议,可以确定通信对端存在才会发送协议,可以控制流量的浪费

实现可靠传输的方式

  1. 通过序列号与确认应答提高可靠性
    在TCP中,发送端的数据到达接收主机的时候,接收端主机会返回一个已收到消息的通知,这个消息叫做确认应答(ACK)
    发送端在发送的数据上每一个字节标上序列号,初始是随机生成,然后每一个字节+1,当接收端收到数据时,返回ACK的序号为下一次应该收到的序列号开头

  2. 超时重发机制
    每一次发送都会计算偏差,动态调整超时的时间
    默认最小偏差是0.5s ,最小超时是1s

tcp以段为单位发送数据,这个段就是最大数据的发送长度,最好就是在IP中不会被分片处理的最大数据长度。 这个长度在进行建连的时候就确定了。

  1. 高速重发机制
    当发送端接收到某次确认应答时,又连续三次收到重复一样的确认应答时,代表没有发送成功,这时候会重新发送。

  2. 窗口控制
    接收端会在TCP首部中标示自己自己的缓冲区大小,每一次通信都会带上,当接收端处理数据时,发送端会发送一个字节大小的窗口探测的包来获取最新的窗口大小

  3. 用塞控制
    在通信开始的时候,会通过一个慢启动的算法对发送数据量进行控制。初始发送一个段,每次接收到确认应答时,加一个段。发送端维护一个拥塞窗口,每次接收到一个ack,窗口大小加一,发送包的时候会与接收端的窗口大小进行比较,传送比最小的还小的数据。

随着窗口不断增加,发送端会设置一个窗口阈值,超过后就会根据:
一个数据端字节数 * 一个数据端字节数 / 拥塞窗口字节数

不过这个阈值最开始不会设置,只有当触发了超时机制,会设置当前的一半。

在这里插入图片描述

提高网络利用率的规范

  1. 延迟发送ack
    接收段可以接收两个段后发送一次ack,目的是减少当 刚接收到数据后,缓冲区满了,会发送一个小的窗口,这样效率又下降了

TCP首部

在这里插入图片描述

UDP

全称是 user datagram protocol 这里的user代表的是程序员了

  1. 常用场景
  • 包总量较少的通信(DNS, SNMP)
  • 音频,视频等多媒体通信(及时通信)
  • 限定于LAN等特定网络中的应用通信
  • 广播通信(广播 多播)

首部格式

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值