TCP/IP的基本知识

一、基本

包括TCP(传输协议)、IP(网络协议)、UDP(用户数据包协议)、ARP(地址解析协议)、RARP(反地址解析协议)。

OSI与Tcp/Ip参考模型:7层(层的概念是逻辑的概念、理论性应用层、表示层、会话层、传输层、网络层、数据表连接层、物理层),实际上用的协议是四层(应用层(FTP、Telnet)、传输层(解释数据)、网络层(定位IP地址和确定连接路径)、链路层(与硬件驱动对话))。

以QQ传输为例:

四层封装在电脑里面,每层都有各自的责任,qq1的你好,经过应用层就变成app你好(表示哪个应用程序),经过传输层变成TCPAPP你好,经过IP层变成IPTCPapp你好(表示将你好传输到哪个IP地址),经过链路层数据包加上帧头和帧尾发送给网卡,发送给经过各个路由器找到qq2,对方的网卡逆向执行。

网络端口

经过路由器和TCP/IP协议到达主机的数据包,需要确定将数据传输给电脑程序的哪个进程,而端口就是来确定的。端口就是进程队列等待进程来取得数据包。如FTP是20和21、http是80等。

个人理解ARP过程:

可以这样理解,当qq的你好经过一层层七层封装好后,由传输层tcp来负责建立握手联系,由ip协议来负责在网络传输路由选择的过程,链路层来拆分帧,物理层发送二进制码。

主机要识别是否是跟我通信,要(先查询ARP(地址解析协议)查这个ip的mac地址)将ip地址转化成物理地址mac才能识别,我们才能两相互通信。当我第一次要和你通信时,我知道你的ip地址,我问这个ip地址是谁的,你(要用到RARP(反地址解析协议))回答是我的,并有了你的mac地址,我保存下来。当第二次我跟你通信时,我也是通过ip地址找到你,这时这个数据包里面有你的mac地址,你就能识别是跟我通信,我们两就建立了相互的通信关系,因为ip地址是经常换的,而mac则不会换。这跟腾讯服务器通信也是同样的道理。

为了通俗易懂的解释ARP协议的作用,这里就举一个简单的PING命令例子:http://blog.sina.com.cn/s/blog_779cf341010139hb.html
  假设在一个局域网中,(注意这里的前提是两台主机在同一局域网中)我们的计算机IP地址是192.168.1.1,现在DOS窗口中执行这个命令:ping192.168.1.2。该命令会通过ICMP协议发送ICMP数据
包。该过程需要经过下面的步骤:
1、应用程序构造数据包,该步骤是产生ICMP包,然后把它提交给内核(网卡驱动程序);
2、内核检查是否能够转化该IP地址为MAC地址,也就是在本地的ARP缓存中查看IP-MAC对应表;
3、如果存在该IP-MAC对应关系,那么跳到步骤7;如果不存在该IP-MAC对应关系,那么接续下面的步骤;
4、内核进行ARP广播,即发送 ARP Request,向整个网络中大喊,这个IP是谁的,这个IP是谁的(这个ARP Request中包含有我们计算机的MAC地址;
5、当192.168.1.2主机接收到该ARP请求后,就发送一个ARP 回应,即ARP REPLY命令,说道:这个IP是我的,你看这是我的MAC地址(ARP Request中包含自己的MAC地址);
6、我们的计算机获得192.168.1.2主机的IP-MAC地址对应关系,就保存到自己的ARP缓存中;
7、内核将把目标主机IP转化为MAC地址,然后封装在以太网头结构中,再把数据发送出去;
8、这样主机B看到发送过来的数据包包头里有自己的MAC地址,才会识别它,噢,这个数据是发送给我的(当数据包包头里只有B的IP地址时,主机B会不认识它,不去接收这个数据包)
IP地址就像人的姓名,MAC地址就像人的身份证,当一个包裹发送过来,上面写着,是给张三的,但是叫张三的多了,张三不会去接收,但是包裹上面写了张三的身份证号码,张三一看,啊,是我的,身份证是唯一的,他才接收。那IP的作用是什么呢?
  IP地址具有全网范围内的寻址能力,主机A和B可能分别处在不同网络,主机A要访问主机B首先要知道主机B的IP地址,不然找不到主机B所在
的网络。也就是说有了主机B的IP地址,主机A会知道主机B在哪里,知道它所在的网络,但不会把数据给它,只有得到它的MAC地址,之后,才会给它,就像验证身份证一样。
  使用  arp  -a  命令就可以查看本地的ARP缓存内容,所以,执行一个本地的PING命令后,ARP缓存就会存在一个目的IP的记录了。当
然,如果你的数据包是发送到不同网段的目的地,那么就一定存在一条网关的IP-MAC地址对应的记录。
  知道了ARP协议的作用,就能够很清楚地知道,数据包的向外传输是非常依赖MAC地址,可以看出ARP协议在网络传输中的不可缺少的作用。
假如说两台主机不在同一局域网,即便知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP协议获得的将不是目的主机的MAC地址,而是一台可以通往局域网外的路由器(路由器理解成一台电脑就行,这个电脑路由器里面会记下刚才是哪台电脑跟外网进行联网的,可能会给这个电脑分配一个端口号,而外网就只知道路由器了,跟这个路由器的端口号通信)的某个端口的MAC地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为ARP代理(ARP Proxy)。也就是说,本地主机当寻求一个IP地址的MAC时,找不到,不是同一局域网,那它会收到路由器的MAC地址,说,这个数据就交给你了,剩下的事就你来处理了,你去找目的主机吧!
 每次都要用ARP request来寻求MAC是很低效的,ARP cache则很好的解决了这个问题。

二、读TCP/IP详解卷一

1P39关于ARP的作用

知道主机的IP地址并不能让内核发送一帧数据给主机,内核必须知道目的端点的硬件地址才能发送数据。ARP的功能是在32bit的IP地址和采用不同网络技术的硬件地址之间提供动态的映射。

ARP请求,以太网广播的形式。每个主机都有一个ARP高速缓存。

组播

路由器并不关心报文的源地址,只关心报文的目的地址,通过其目的地址决定向哪个接口转发;而组播报文是发送给一组接收者的,这些接收者用一个逻辑地址(即组播地址)标识,路由器在收到组播报文后,必须根据报文的源地址确定其正确的入接口(指向组播源方向)和下游方向,然后将其沿着远离组播源的下游方向转发——这个过程称为逆向路径转发(RPF)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值