博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ICND1(笔记2)
阅读量:5289 次
发布时间:2019-06-14

本文共 1580 字,大约阅读时间需要 5 分钟。

 

(1) 物理层、数据链路层、网络层设备

 

  •  物理层设备

     主要有中继器、T1链路、NIC上的接口等。

   

 

 

  • 数据链路层设备

     常见的是安装在主机、桥接器、交换机上的NIC。

   

 

     主机通信需要的二层地址:

 

 

 

  • 网络层设备

     

     三层设备网络系统使用的三层地址,IP地址:

   

 

 

  • 二层地址映射到三层地址

   

 

 

  • ARP表

     

 

 

 

 

(2) 直连主机之间数据包的传送

 

Step 1:

     在图1-63中,主机上应用程序的第3层地址为192.168.3.1,要给第3层地址为192.168.3.2的主机发送一些数据。应用程序想使用可靠的连接。应用程序从传输层请求该服务。

     传输层选择TCP建立会话。TCP通过传递一个设置了SYN位和目标第3层地址(192.168.3.2)的TCP头给IP层,完成会话的初始化。

   

Step 2:

    IP层将TCP的SYN封装在第2层数据包中,前面加上本地的第3层地址和IP收到来自TCP接收的第3层地址。IP然后将包投到第2层。

  

 

Step 3:

     第2层需要将第3层的数据包封装成帧。要做到这一点,第2层需要将第3层数据包的目的地址映射成它的MAC地址,需要从ARP程序中请求一个映射。

     ARP程序检查其ARP表。在这个例子中,假定该主机并没有与另一台主机通信,所以你在ARP表中看不到任何条目。这就导致第2层不再把包往下传送,直到ARP能够提供映射。

   

 

Step 4:

     ARP程序生成一个ARP请求,并把它传递到第2层,告诉2层将请求发送到广播地址(所有FS)。第2层将ARP请求封装第2层带广播地址的帧中,帧的源2层地址是本地MAC地址,目录MAC地址是广播地址。

  

 

  

 

 

Step 5:

     主机192.168.3.2收到帧时,它注意到是广播地址,于是剥掉第2层的封装。

   

     ARP请求的其他部分传给了主机192.168.3.2的ARP程序。如下图:

   

 

 

Step 6:

     使用ARP请求中的信息,主机192.168.3.2更新自己的的ARP表。

 

 

 

Step 7:

     主机192.168.3.2的ARP程序生成一个应答并将它传给第2层,告诉第2层将应答发给MAC地址是0800:0222:2222。

   

 

Step 8:

     主机192.168.3.2的第2层将ARP应答封装在第2层的帧中。目的MAC是ARP请求中提供的,源MAC是本地MAC地址。如下图所示:

   

 

Step 9:

     主机192.168.3.1收到帧,发现目的MAC地址是自己,于是剥掉第2层的封装。如下图:

   

 

Step 10:

     ARP应答的剩下部分传给ARP程序。如下图:

   

 

 

Step 11:

     ARP程序更新ARP表并将映射传给第2层。如下图:

   

 

Step 12:

     第2层现在可以发送等待中的第2层数据包。

   

 

Step 13:

     在主机192.168.3.2,帧封沿着协议栈向上传递并去除封装。其余的协议数据单元(PDU)被传递到TCP。

   

 

 

Step 14:

     为了响应SYN,TCP程序将一个SYN ACK沿着协议栈向下传递并做封装。

   

 

 

Step 15:

     发送端收到ACK以及来自接收端的它必须做出应答的SYN。

   

 

 

Step 16:

     发送端发送ACK给接收端。

   

 

Step 17:

     三次握手完成,TCP就可以通知应用层,会话已建立。

   

 

 

Step 18:

     现在应用程序可以基于会话发送数据了,发送数据的过程依赖于TCP对错误的检测。图1-82至1-84展示了这个过程。

  

 

 

   

 

   

 

     数据交换过程一直持续,除非应用程序停止发送数据。

 

 

 

 

(3) 默认网关的作用

 

     在主机到主机的数据包传送例子中,主机能够使用ARP将目的MAC地址映射到目的IP地址。然而,只有当两台主机在同一网络上,这种选择才是可行的。如果两台主机在不同的网络上,发送主机必须将数据发送到默认网关,默认网关再将数据转发到目的地。

   

 

转载于:https://www.cnblogs.com/JCSU/articles/2496947.html

你可能感兴趣的文章
中国剩余定理(模板+详解)
查看>>
POST JSON (字典 自定义类转为JSON上传)
查看>>
天下码农苦外包公司久矣
查看>>
css小工具
查看>>
深入理解单例模式
查看>>
详解ListView加载网络图片的优化,让你轻松掌握!
查看>>
算法第3章上机实践报告
查看>>
oracle中的intersect和minus
查看>>
JAVA编程入门
查看>>
Markdown 轻量级标记语言
查看>>
圆桌问题
查看>>
[APIO2015]八邻旁之桥
查看>>
[CTS2019]田野(80分)
查看>>
C++学习5 IO输入输出
查看>>
python:webbrowser
查看>>
<keep-alvie></keep-alive>
查看>>
Nbody问题 Barnes-Hut 实现
查看>>
JS 实现获取打开一个界面中输入的值
查看>>
centos下安装&&配置redis
查看>>
IOS 开展 分别制定了iphone 和 ipad 好? 或开发一个 Universal好?
查看>>