网络基础初探(一)

       本人对网络知识较为感兴趣,在寒假借阅了Jeff Doyle的《TCP/IP路由技术》。为了便于记忆和理解,我决定在CSDN写博客做分享,若本人浅显的见解能解各位读者一时之惑,实为幸甚至极。

一、网络结构模型     

        1.IP/TCP协议族和OSI七层的网络比较

         
         OSI模型层与TCP/IP模型层的区别:
(1)OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。
(2) OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。
(3) OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。

         TCP/IP各层协议详解:

物理层包含夫于物理 介质的协议
数据链路层包含了如何控制物理 层的 一 些协议:介质是怎样存取和共享的,介质上的设备是怎样标识的,数据在介质上 传播之前是怎样成帧的
IP层包含一些将数据链路逻辑分组到一 个网络以及跨网络进行通信的协议
主机到主机层包含 一 些定义并控制中逻辑的、端到端的路径的协议
应用层对应于OSI中的会话层、 表示层以及应 用层
二、数据包的传输过程

       

(1)数据包封装

             IP层传输单位是IP分组,属于点到点的传输;TCP层传输单位是TCP段,属于端到端的传输        

     (2)数据包运送途径

   

三、实例分析 
在学习的过程中,偶然一次机会在知乎上看到一位ID叫车小胖的网络大神,在看他回答网络相关问题的时候发觉他的回答不但透切而且相对通俗易懂,于是买了他的一场live,其中他这个实例发觉写得好,由此转载过来作为本文引用。
主机A接到上局协议的请求,请把数据包Payload发放给给5.5.5.5(A,E为主机,BCD为路由器)
为何不是5.5.5.5/24?
主机A无法知道5.5.5.5的掩码长度,通常获得E的IP地址是通过DNS解析而来,而DNS只提供IP地址服务,并且提供掩码服务!退一步讲,知道对方的掩码又如何?掩码只是本地有效,A的掩码只是本地有意义,E的掩码也只是在E上有意义。
目的IP = 5.5.5.5的IP报文,需要发给下一跳1.1.1.2中转,不下一跳直连的接口是E0,使用E0接口的IP=1.1.1.1作为源IP。IP封装头部可以完成封装了见下图:

Payload是上层协议请求传递过来的,那这个Protocol = 6,也是上层协议请求传递过来的,其代表TCP协议目的也是上层协议传递下来的。IP协议头的关键信息其实都是上层协议传递下来的协议头的关键信息其实都是上层协议传递下来的..
IP层需要借助ARP协议,动态发现对端B的MAC地址,这里为MACb1,有了这些信息,就可以将此信息、IP报文一起传递给网卡,网卡用自己的MACa作为源MAC地址,完成自己的二层封装,如下图:

IP层的关键地址信息是由上层传递下来的,此法则同样适用于链路层。潜台词是IP层要负责查找到下一跳的MAC地址信息,然后再传递给网卡。在二层封装的眼里,上部的IP报文已经成为自己的Payload。
这里又出现了一个Ether-Type= 0x0800,代表着Payload是IP报文,同样也是由IP层提供,这个字段的目的是为了区分上层协议,因为二层不仅仅可以封装IP,还可以封装ARP、IPv6、PPPoE、FC等等。封装好,就可以将以太帧发送出去了。B的网卡接到A发出的以太帧,CRC校验通过,网卡发现此帧的MACb1= myself,接收并且剥掉二局协议头放入缓冲匙,依据ether-type=0x0800通知IP局(事先注册回调函数)来叏走数据。二局以太帧头结束了其平淡而短暂的一生!但IP协议头却依然健在,因为B、C、D要依靠目的IP地址来寻找最织的目的地。
具体实现如下图:

有错欢迎指出。






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值