一、网络OSI参考模型七层结构
-
计算机网络是一个非常复杂的系统,俩个计算机系统必须高度协调才能相互通信。
-
为了设计该网络,人们采取分层的思想,将庞大而复杂的问题转化为若干较小的问题
-
为了实现不同体系结构的网络通信和信息交换,ISO国际标准化组织制定了一个描述 网络通信所需要的全部功能的总框架,OSI(七层网络模型)
-
OSI参考模型,自下而上分别是 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。每层实现相对独立的功能,通过接口为上层提供服务。
-
物理层:负责在俩个相邻节点间 透明的传输比特流;它为在物理媒体上传输的位流 建立规则;定义电缆如何连接到网卡上,用何种传送技术在电缆上发送数据,定义了位同步及检查。本层的协议数据单元为比特,工作在物理层的设备有 集线器,中继器,放大器
-
数据链路层(链路:是一条 点到点的物理线路,中间没有任何其他的交换节点):计算机之间的通路往往是由许多链路串接而成的。数据链路层的任务就是将 网络层下来的数据组装成帧,在俩个相邻节点间的链路上无差错的传递以帧为单位的数据。每一帧包括数据和控制信息,控制信息界定边界和帧检测。
-
网络层:俩个计算机之间的通信,可能经过多个节点和链路,或 由路由器互联的子网。网络层的任务 是 为每台计算机编址、路由选择,使 发送方的传输层的分组 能够 正确的按着地址找到目的方,并交付给目的方的传输层。网络层的数据传输单位是 分组或包(packet),包太大可能被分片,然后在目的节点上进行重组。网络层设备 包括 路由器,包过滤防火墙。
-
设备 层次 特点 集线器、中继器 物理层 共享方式,在一个端口向另外一个端口发送信息时候,其他端口就不能再由信息传递 网桥、交换机 链路层 根据MAC地址寻址,通过站表选择转发接口。不同接口属于不同冲突域,属于同一个广播域。 路由器 网络层 连接不同网络,根据IP地址进行子网划分和寻路,支持多个广播域
-
-
传输层:主要任务是为俩个主机上的进程 之间 建立 一条传输链路,透明的传送报文。报文是传输层的传送单位,当报文较长时,要先分割成分组,然后交给网络层。
-
会话层:不参与具体的数据传输,它在俩个互相通信的进程之间建立、协调交互方式,如 确定双工或单工
-
表示层:解决用户信息的语法表示问题
-
应用层:是用户的应用程序访问网络服务的地方,它负责整个网络因公程序的工作。
-
二、TCP/IP体系结构
-
现在规模最大,覆盖全世界的Internet 并没有使用OSI标准,而是使用TCP/IP 体系结构,是一个四层体系结构。包括 网络接口层、网络层、传输层、应用层
-
网络接口层:包括操作系统的设备驱动程序和计算机中对应的网络接口卡。作用是从网络层接收数据包,把数据包进一步处理成数据帧,通过网络设备进行传输,或从网络上(链路层)接收数据帧,解开数据帧为数据包 交给网络层。该层相当于OSI模型的物理层+数据链路层
-
网络层:他负责把信息从一台主机传送到指定接受的另一台主机。在TCP/IP协议簇中,网络层协议包括IP协议,ARP/RARP协议,ICMP协议,ICMP协议
-
传输层:为俩台主机的应用提供端到端的通信。主要包括,TCP和UDP协议。
-
应用层:负责处理特定的应用程序细节,包括http,ftp,smtp等
三、链路层
-
TCP/IP支持多种链路层协议,比如以太网,令牌网,FDDI网络等
-
以太网数据帧,链路层协议数据单元为帧,包括帧头和数据。数据可以是IP数据包,或ARP/RARP请求应答包。
-
以太网v2帧
-
目标地址(DA) 源地址(SA) 类型 数据 填充 帧检验序列(FCS) 6字节,接收者网卡接口地址48位 6字节,发送者网卡接口地址48位 2字节,报文类型 上层协议内容,46-1500字节 小于46字节, - 目标地址:6字节,接收者网卡接口地址48位
- 源地址:6字节,发送者网卡接口地址48位
- 类型:报文类型,2字节
- 数据:上层协议内容,46-1500字节
- 填充:小于46字节,数据字段小于46字节,则填充
- 帧检验序列:4字节
-
实际传送的比MAC帧多8字节,包含俩个字段。第一个字段7个字节,用于接收端和发送端时钟同步。第二个字段 是帧开始定界符:10101011
-
最小传输单元,以太网最小传输单元46字节。
-
最大传输单元,链路层对帧的数据部分有最大长度限制,以太网最大MTU1500字节,因此以太网数据帧最大长度1518字节。如果IP层传送的数据长度大于MTU,IP数据包需要分片,使得每个分片不大于MTU
-
路径MTU,俩个通信主机 经过多个网络,每个网络的链路层有不同的MTU,那么这条通路上的最小的MTU为路径MTU
-
一个IP数据包分片后,分片在网络上独立传输,到达目的后进行重组。重组在目的端的IP层完成。因此,分片和重组对于传输层是透明的
-
网络接口卡,每个接入网络的设备必须友哥网络接口卡,网卡上MAC(media Access Control)地址。
四、网络层
-
网络层作用是把信息从一台主机传送到指定接收的主机。网络层协议包括,ARP/RARP协议,ICMP协议,IGMP协议。
-
IP协议
-
TCP、UDP、ICMP、IGMP数据都是以IP 数据包的格式传输。
-
IP地址:网络接口卡可以有俩个以上的IP地址
-
IP地址分为A,B,C,D,E;E类地址暂未使用;D类地址一般用于多播地址
-
子网和子网掩码:把主机号的前几位作为i子网号,其余的作为主机号。
-
IP报文格式
-
版本:4位,IP协议版本,目前主流为4,IPv4.
-
首部长:4位,IP包头长度,以4字节为单位。首部长度>=5字节
-
服务类型:8位,包括3位优先权字段(基本不用),4位TOS(服务类型)字段,最后以为0。TOS分别标识最小延时,最大吞吐量,最高可靠性,最小费用
-
总长度:IP数据包的总长度,字节为单位。IP包最大长度,65535
-
标识:数据包的ID号,当IP包出现分片时,每个分片ID号相同。
-
生存周期:ttl,表示允许经过最大路由器数。没经过一个路由器ttl-1,0时丢弃报文
-
协议类型:指数据包携带的数据部分使用的协议,使目的主机IP层知道上交给哪个处理。ICMP:1,ICMP:2,TCP:6,EGP:8,UDP:17
-
校验和:根据IP头部计算的校验和,不对数据部分计算,上层协议有自己的校验和
-
源地址:发送方的IP地址
-
目的地址:接收方IP地址
-
选项:包括安全和处理限制,记录路由,时间戳,源路由选项
-
-
地址解析协议ARP
- 网络层使用IP地址,网络的链路层使用的数据帧
- 作用使位IP地址找到MAC地址
-
反向地址解析协议RARP
- 主机从自己的网卡读取MAC地址,发送RARP请求(广播),请求其他主机响应自己的IP地址
-
广播
-
一个主机向网络上所有其他主机发送数据的情况
-
网卡只接受目的地址为自己的MAC地址或广播地址(ff:ff:ff:ff:ff:ff),若网卡被设置为混杂模式,则它可以接收每个数据帧。
-
设备驱动程序进行帧过滤,帧类型指明了网络层协议(IP,ARP)
-
IP协议根据IP地址的源地址和目的地址,交给上层TCP或UDP
-
TCP/UDP收到数据后,根据源目的端口过滤,当前没有进程是以哦那个该端口,则丢弃,产生一个ICMP不可达
-
链路层广播使用链路层广播地址MAC;IP层广播,多播使用特定IP地址。
-
受限制的广播地址,255.255.255.255,该地址用于主机自动IP地址配置,任何路由器不转发目的地址为受限的广播地址。
-
-
控制报文协议ICMP
- ICMP是IP层,传递差错信息,如PING 采用的ICMP协议。
五、传输层
-
TCP/IP协议族的传输层包括TCP 和UDP。TCP提供有链接的,可靠的数据传输服务;UDP提供无连接,不可靠的传输服务
-
TCP
-
源端口号和目标端口号,用于标识发送端和接收端应用进程。源IP地址,目的IP地址,源端口号,目标端口号唯一确定一个TCP连接
-
序号:TCP数据流的标识号,32位无符号数。TCP面向流的,传送的报文可以看成是连续的数据流,TCP为每个数据流中每个字节分配一个序号。整个数据的起始序号在连接建立时确定,头部中的序号指报文数据部分的第一个字节的序号。
-
确认号:ACK,接收端希望收到下一个报文段的数据的第一个字节的序号,等于上次已成功接收的数据段的最后一个字节的序号+1
-
首部长度:包括 选项 部分的首部长度,以32为一个单位,最大长度60字节
-
保留:暂无用处 为0
-
标志位:
- 紧急位URG,1标识紧急指针有效,需要紧急处理。URG时发送端向接收端发送紧急数据的方式
- 确认位ACK,确认号有效
- 推送位PSH,表示发送方希望接收方尽快将包交给应用层处理,不再等待缓存填满
- 连接重置位RST,表示TCP连接出现严重差错,必须释放连接,然后重新建立连接
- 同步位SYN,TCP请求时1
- 终止位FIN,用来释放一个连接
- 窗口,TCP流量控制通过连接的每个端申明自己的窗口大小实现,窗口大小表明接收期望的字节数,最大65535
-
TCP三次握手哦
-
主机1发出连接请求报文 syn=1,no=123456
-
主机2收到连接请求后,记录下主机1的初始序号,主机2发送一个应答报文,应答报文包含主机2的初始序号 ack=1,no=123457,syn=1,34567
-
主机1收到主机2请求后,主机1发送一个应答报文,ack=1,no=34568
-
此时,俩个主机TCP连接已建立。
-
-
TCP数据传输
- 建立好的TCP连接任何一方可以发送数据,接受对方的数据必须发送确认包,如果发送方在一定时间内没有收到对方的确认,则必须重传
-
TCP连接终止
- TCP连接时全双工的,连接俩个方向可以同时传递数据,每个方向必须单独关闭。