OSI模型_笔记

参考文章:《嵌入式系统设计与开发实例详解-基于ARM的应用》,胥静 主编

《TCP/IP详解》 凯文R.福尔 (作者), 吴英 (译者)

ARP协议解密:http://www.ibm.com/developerworks/cn/linux/l-arp/


========================================================================================================================


物理层:OSI模型最底层,规范网络的电气和机械接口。


数据链路层:(PPP协议和HDLC协议)把数据组合成帧格式进行发送并处理接收到的帧。把不可靠的物理层传输变成可靠的数据传输,具有流量控制和差错控制功能,具体可分为两层:
1、介质访问MAC:解决新到竞争
2、逻辑链路控制LLC:解决传送数据的维护


MTU:以太网和802.3对数据帧的长度做了限制,分别是1500和1492字节,如果IP层数据报大于MTU,需要做IP分片。


IP v4有4Byte组成,通常使用4个点分十进制表示,该地址分成如下3部分

1、网络地址,唯一标识了一个组织

2、子网地址,标识了该组织的一个子网

3、系统地址,标识了子网中的唯一的一个节点


解释网络术语:

子网:一个简答的局域网

网络:通过路由器相连的子网的集合

组织:通过路由器相连的网络的集合

子网 - 网络 - 组织 , 构成了三层的网络层次结构。

比如,PC与其他一些计算机处于同一局域网(LAN)中,该局域网是一个子网,

这个局域网通过路由器/网关与其他局域网相连构成广域网(WAN),这个广域网就是子网(局域网)的集合,称为网络。

广域网通过路由器/网关与因特网相连,构成了一个三成网络。


ARP地址解析协议: IP地址 -> 物理地址

RARP反向地址解析协议:物理地址 -> IP地址

ARP数据包格式:



========================================================================================================================


网络层:解决数据在网络与网络之间的数据传输问题,不可靠,无连接(IP层是TCP/IP协议的核心,IP和ICMP协议)


通过路由选择算法,为报文和分组通过通信子网选择最合适的路径,即提供逻辑寻址以便进行路由选择。在网络层有两种类型的包:数据包和路由更新包。
IP(网际协议)是位于网络硬件驱动之上的第1层软件层,ICMP是它的附属协议(注:ICMP不可靠,没有具体端口号),IP协议屏蔽了下层物理网络的差异,向上层提供统一的IP数据报。
IP和ICMP的主要作用是进行网络路由,IP提供静态路由信息,ICMP提供动态路由信息。
之所以说IP提供静态路由信息,是因为IP报文头存放路由器所需的静态信息,例如源IP地址和目标IP地址,路由器不需要对每个数据报的内容进行详细检查,只需要获取报文头中对应字段的内容即可。
ICMP数据包则专门用作“错误侦测和回报”的消息,当路由出现问题,就将这个消息动态的回报给发送者。

IP数据报的格式如下:IP首部通常是20Byte



IP分片                                 

数据链路层用MTU限制数据包大小(不包括数据链路层数据帧的帧头),当源IP数据报的大小超过目标MTU,IP层需要对数据进行分片。(中间路由器也有可能分片)

IP首部4个字节用于分片:

前16位是IP数据包的标识,同一数据包的各个分片的标识是一样的。(目的端根据标识判断分片是否属于同一IP数据报)

中间3位是标志位:表示是否有更多分片,最后一个分片 = 0,否则为1。

最后13位是分片在原始数据的偏移。

注意:在分片数据中,传输层首部只会出现在第一个分片中,应为传输层数据格式对于IP层是透明的,传输层首部只在传输层起作用,IP层不需要保证每个分片中都有传输层首部。所以网络上传输的数据包可能没有传输层首部。

网络编程中,应尽量避免IP分片,因为IP层没有超时重传,若IP分片丢失,只能依赖传输层重传,结果是所有分片重传。

对于UDP,应该在应用层限制每个包的大小,一般不超过1472Byte,即以太网MTU(1500) - UDP首部(8) - IP首部(20)

对于TCP,应用层不需要考虑该问题,在传输层建立连接的三次握手中,双方相互告知MSS(最大报文段长度),MSS一般等于 MTU - IP首部(20) - TCP首部(20)
========================================================================================================================

传输层
:连接应用层与完成网络间数据通信的其它层。“端口”的区分就是在传输层完成的,利用不同的端口,虽然只有一个网络节点,实现不同的功能。
屏蔽低层数据通信的细节,向用户传送透明的报文,具体包括:
1、建立、维护、拆除应用程序之间的连接
2、提供端口到端口的错误恢复和流程控制
3、为上一层提供独立的透明的数据传输








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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值