TCP/IP精讲

原文关注公众号 - 无线技术栈,及时查看网络/Wi-Fi更多知识

“本文图片没有一一列出,感兴趣可以关注公众号 - 无线技术栈,获取PDF原文阅读”
在这里插入图片描述

关于OSI七层网络架构,小编基于<TCP/IP>基础,使用文字配合绘图简单通俗的整理了一份详细的文章,可以提供网络工程师基础的辅助理解;

文章目录全貌:
在这里插入图片描述
序言
本文旨在介绍一下TCP/IP涉及得所有基础知识,为大家从宏观上俯瞰TCP/IP提供一个基石,文档属于《TCP/IP图解(第五版)》的精简版本。
专业术语
缩写
全称
WAN
Wide area network广域网
LAN
Local area network局域网
TCP
Transmission controll protocol传输控制协议
UDP
User Datagram Protocol
IP
Internet Protocol
ISP
Internet Service Provider
IX
Internet Exchange
NOC
Network Operation Center
MTU
Maxinum transmission Unit
DNS
Domain Name System
ARP
Address Resolution Protocol
DHCP
Dynamic Host Configuration Protocol
1 基础知识
提到通信网络,不得不想到TCP/IP七层架构,由下图:
[图片]
1.1 网络出现得背景

  • 网络设备的广泛使用,处在现在的科技时代,智能设备已经不在讲究单打独斗,而是倾向于“万物互联”的生态理念,身边的电脑、手表、笔记本、电视、汽车…都离不开网络;
  • 网络模式的切换,计算机诞生之初,每一台机器都是一个独立的设备,之间不能互相通信,如下图计算机1-3之间没有任何关联,用户如果想切换计算机只能移动实现,想到新中国成立之初,我们在研发核弹、核潜艇…时需要经过大量的计算从而得到科学的结果,但是那个时候国内计算机屈指可数,科研人员想要计算数据时只能来回奔波;
    独立模式:
    暂时无法在飞书文档外展示此内容
    互联模式:
    这种模式下不同的计算机之间可以进行信息共享;
    暂时无法在飞书文档外展示此内容
  • 通信方式的转变,最初的计算机通信是基于有线方式,比如将相同业务的计算机通过有线连接在一起,从而实现信息共享,形成一个局域网,而在新型的网络通信中,不在有此局限,用户可以访问到任何计算机的信息,就像我们坐在家里就可以访问到国务院下发的最新资讯;
  • 有了网络之后,万物互联将不在是口号,而是做到了真真正正的信息共享,全球”一家“,巴以冲突的最新战况我们动动手指就能看到;
    计算机网络规模分为两种:
    1.WAN(wide area network)广域网
    广域网是由多个局域网组成,就像我们几个人可以组对和其他城市的队伍竞技;
    2.LAN(local area network)局域网
    顾名思义,局域网就是一个特定区域或者网域环境,可以由交换机、路由器、计算机组合,就像我们几个人在一个网吧玩红警;
    1.2 协议必要性
    协议为多设备之间提供了一种规范,要求所有的设备都必须按照固定的规范执行,这样高度一致性,不管是什么厂商、平台…都可以正常通信;
    1.3 OSI七层架构及作用
    应用层:主要有各应用主导开发,例如邮件协议、文件传输协议;
    表示层:负责将应用信息转化为可以利用网络传输的格式,例如在双端之间传输声音、视频等信息;
    会话层:通信管理协议,负责建立和断开通信连接;
    传输层:负责端到端的数据传输,TCP/UDP是典型代表;
    网络层:主要负责地址管理域路由选择,IP是典型代表;
    数据链路层:双端直接传输的数据,负责将数据转换为比特流,802.11是典型代表;
    物理层:负责将数字信号转化为电信号/光信号并进行传输;
    1.4 网络的构成要素
    一个完整的网络至少需要包含以下几个要素:
  • 网卡:使计算机联网的设备;
  • 中继器:从物理层上延长网络的设备,可以对信号进行放大和传输;
  • 网桥/2层交换机:从数据链路层上延长的设备;
  • 路由器/3层交换机:通过网络层转发分组数据的设备;
  • 4~7层交换机:处理传输层以上各层网络传输的设备;
  • 网关:转换协议的设备;
    1.5 传输数据和吞吐量
    传输速率:(bps)
    在数据传输过程中,端到端之间数据流动的物理速率就是传输速率,传输速率高不是指单位时间流动的数据速率有多快,而是指单位时间数据的传输量有多少,举个例子,低速率就好比日常生活中车道少的公路,汽车通路的时间就比较久,而高速率就好比车道多的公路,汽车通过就比较快,那传输速率就好比这一段时间通过的车辆;
    传输速率就可以说是带宽,带宽越大,传输速率越大;
    那对wifi而言,影响数据传输数量的因子有哪些呢,如下表格,列出来所有的因子,我们在拆解一个吞吐问题时,首先就需要check这些硬性条件是否满足(带宽、空间流、调制解调方式、GI等等):
    [图片]

吞吐量:
端到端之间实际的传输速率被称为吞吐量,影响吞吐量的因素有这么几个:
(1)带宽;
(2)CPU处理能力;
(3)网络的拥堵程度;
(4)报文中数据字段的占比(不含报文头,只计算数据段本身);
…这几个因素也将作为后续排查网络断流问题的外部因素;

2 TCP/IP基础知识
TCP/IP更广义的定义并不是单单指TCP/IP两种协议(当然就是这么说也没毛病),但是他们往往是指一个协议家族:
[图片]
定义协议的组织被称为是RFC,如何从网络中获取协议文档参考链接如下:
RFC协议获取指导
2.1 新协议标准化流程
[图片]
2.2 TCP/IP通信流程
2.2.1 数据"身份证"
根据OSI七层架构来看,每一个数据包从应用发送给接收端,都需要经过每一层协议栈层层包装,如下图:
[图片]
每一层都会对所发送的数据进行封装处理,添加一个首部,这个首部通常包含该层必要的信息,比如发送的目标地址以及协议的相关信息,数据包 = 协议头 + 数据;(上一层的整个包都会被下一层视为其数据包)
[图片]
这里我们可以抓一份数据报文来看:
[图片]
2.2.2 发送数据包
我们举个例子,我们通过飞书给某位同事发送一个文件压缩包/语音/文字,看看各层都做了什么:
(1)应用程序处理
在文本框编辑好文字之后,从点击发送图标开始,应用程序开始建立TCP连接,当然,他首先会对要发送的内容进行编码;
(2)传输层
这里的传输层也可以理解为TCP协议,传输层负责建立、断开TCP连接以及发送数据;
TCP收到应用发来的数据后,会做以下事情:

  • 为数据添加TCP包头,包头中将包含以下内容:
    [图片]
  • 将封装好的数据发送给IP;
    (3)网络层
    这里可以理解为是IP协议,IP负责以下内容:
  • 将收到的TCP包整体当作数据包并添加IP包头,这里将会包含源/目标MAC地址,如果不知道MAC地址,将会通过ARP协议进行寻址,包头内容如下:
    [图片]
  • 将封装好的数据发送给驱动程序,也称为数据链路层,这里才开始正真的数据发送;
    Mark:这里值得注意的是IP包头中的TTL字段,他表示这个字段在穿过多少个路由之后被抛弃,当IP没穿过一个路由器就会-1,当他变成0之后就会被自动抛弃;

(4)数据链路层
这里基本是驱动程序,像802.11、以太网、数据网协议都在这一层,拿802.11举例,驱动程序在拿到数据包之后,负责以下事情:

  • 给网络层数据包加上802.11协议包头以及标志802.11的协议,截图如下:
    [图片]
  • 将封装好的数据包交给物理层传输给数据端;
    数据包从应用出来后,经过每一层,都会添加一个包头,802.11包头、IP包头、TCP包头以及应用自己的包头,在链路层还会添加一个包尾;每个包头中至少包含两个信息:
    (1)发送端和接收端的地址,数据链路层是MAC地址,网络层是IP地址,传输层是端口号;
    (2)上一层协议的类型;
    [图片]

Mark:传输层和数据链路层都有校验数据完整性的功能;

2.2.3 接收数据包
数据接收过程与发送过程相反,下边简单描述下各层协议的任务;
(1)数据链路层

  • 从802.11数据包中找到MAC,判断是否是发给自己的,如果不是就直接丢弃;
  • 查找包头中类型域,确认包类型交给上一层对应的协议处理;
    (2)网络层
  • 从IP包头里解析IP地址确认是否是发给自己的包,如果不是直接丢弃;
  • 查找包头中类型域,确认包类型交给上一层对应的协议处理;
  • 在有路由转发的情况下,接收端地址往往是路由设备的地址,此时需要根据路由控制表转发给对应的终端;
    (3)传输层
  • 计算校验和,确认数据是否被损坏;
  • 检查接收数据序号、检查端口号,确定具体的应用;
  • 传输给对应的应用,注意数据校验完之后会发送一个ACK确认,如果这个ack没有到达,就会重传;

3 数据链路
数据链路层是TCP/IP的基础,如果没有数据链路,TCP/IP也将无从说起,本文主要介绍数据链路的基础知识,具体协议以802.11为载体;
3.1 数据链路层的作用
数据链路层的几个作用在这里简单介绍下:

  • 端到端之间传输数据时,说白了就是数字信号和光/电信号的转变,转变为光/电信号正是数据链路层和物理层的作用;
  • 数据链路层是数据传输的最小单位;
  • 数据链路层定义了各种通信媒介之间通信的规范;
    3.2 数据链路相关的技术
    3.2.1 MAC地址
    MAC地址相当于数据链路层的ID,端到端之间通信依赖于MAC地址,因此世界上任何两台无线设备都不应该具备相同的MAC地址,MAC地址长度是48b,结构如下:
    [图片]
    第1位:单播/多播地址(0/1)
    第2位:全局/本地地址(0/1)
    第3~24位:由IEEE组织分配,不能重复
    第25~48位:由各个厂商直接管理,不能重复

无线设备驱动厂商的识别码称为厂商识别码,即Organizationally Unique Ideifier,简称OUI,OUI官网查询链接:OUI官网查询(在这个链接里我们可以看到任何一家厂商的OUI信息)
[图片]

3.2.2 共享型网络访问控制方式
共享网络是指多设备共用一种传输介质,例如多个wifi设备之间共用一个信道进行收发数据,收发数据时都需要获得传输介质,这里就用到了CSMA/CD方式,CSMA/CD要求每个设备发送数据前都

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值