TCP和ARP

TCP是一个工作在传输层,面向连接的协议,一台计算机与另一台计算机通信就需要TCP协议,当然还有一个和它并列的一个协议可以使用,只是TCP更加稳定且常用.
TCP和ARP
捕获
上图为一台计算机与另一台计算机建立通讯的过程,它实际通信中传递的不止斜线上的信息.上面的SYN是同步号,
ACK为确认号.seq为序列号,ack为辅助的确认号
捕获
上面为建立通信时发送的TCP信息详细结构,ip首部为internet层添加的IP和mac地址信息.端口是在跨路由通信时使用到的,它并不在IP中,而是在TCP的首部,序列号表示本机发送的第几个数据包,在来回的通信中会有各自的序列号. 确认号,是在对方发送信息以后,记录对方序列号后加以得到的号码,再次发送时如果对方发现确认号正确就代表传输过程中没有丢包.数据偏移(字节),窗口(传播速率),校验和(计算校验发现错误),紧急指针,选项有(最大报文长度,窗口扩大,时间戳).
URG,ACK,PSH,RST,SYN,FIN都只有一位,0或1
URG表示是否紧急,ACK表示前面的确认号字段是否有效.TCP规定,建立连接后,ACK必须为1.
PSH提示接收方是否把缓存区数据提交上层应用
RST表示与主机连接是否有错误,否则重新建立连接,带有RST=1的标志的报文为复位报文段
SYN建立连接时使用,用来同步序号,和ACK连用.SYN=1,ACK=0,表示请求连接,SYN=1,ACK=1,表示同意建立接
FIN表示是否要关闭连接,带FIN的tcp报文段称为结束报文段
 连接时有三次握手,断开时还有四次挥手,两者发送的报文类似,只是通信机制有些差别.在已经建立联通时,发送的报文也是类似结构.
在两台计算机建立连接之前发动连接的计算机要知道需要连接的计算机是谁它们才可能通信,这个需要操使用者提供IP地址,然后才能获得mac地址,才能够通讯.这里涉及到一个问题为什么要使用到mac地址才能通讯,使用IP地址也能唯一确定一台计算机了,即使不在一个局域网中使用端口也能确定一台计算机.这主要和网络管理,和网络协议(TCP/IP)有关.关于这个问题网上有很多版本的讨论,我选择了一个版本的,反正TCP/IP协议中同时需要IP和mac地址才能通讯.
IP地址分为网络地址和主机地址两部分,在网络传输中便于快速寻找路由,并返回主机解析。而且,对于主机来说不是唯一性的。MAC是网卡物理地址,是每个网卡唯一地址。其中前6位16进制数代表网络硬件制造商的编号,它由IEEE(Istitute of Electrical and Electronics Engineers,电气与电子工程师协会)分配,而后3位16进制数代表该制造商所制造的某个网络产品(如网卡)的系列号。
当网卡更换的时候不必通知网管MAC地址更换,即可使用现有IP地址进行网络服务。
现在有很多计算机都是通过先组建局域网,然后通过交换机和Internet连接的。然后给每个用户分配固定的IP地址,由管理中心统一管理,这样为了管理方便就需要使用Mac地址来标志用户,防止发生混乱,明确责任(比如网络犯罪)。
ARP(Address Resolution Protocol)地址解析协议通信
如果在路由器一侧(在同一个广播域中),主机A广播(谁的ip是IPB)后主机B返回它的mac地址, A与B就能确定连接路径够建立连接.
如果不在同一侧,比如向主机C访问,广播没有回应证明目标计算机不在一个广播域中,那么会向网关(路由器)发信息,路由器回应它的mac地址,然后A再次发送{DST MAC:MAC1  SRC MAC:MACA DST IP:IPC SRC IP:IPA}  到路由器端口1,路由器处理的办法是向广播域中发广播(谁的ip是IPC),有C回应了它的mac地址,
然后端口2再次发信息给C{MACC  MAC2  IPC  IPA},机器C就知道A了,这样A和C就建立了连接 ,如果中间有多次路由就是多次经过上面过程
arp -n 显示局域网中mac地址和IP的对应关系
Windows中使用 arp -a
RARP:Reverse Address Resolution Protocol 反向地址转换协议
RARP发出要反向解析的物理地址并希望返回其对应的IP地址,应答包括由能够提供所需信息的RARP服务器发出的IP地址。虽然发送方发出的是广播信息,RARP规定只有RARP服务器能产生应答。许多网络指定多个RARP服务器,这样做既是为了平衡负载也是为了作为出现问题时的备份
在计算机中有一个ARP表,在ARP中记录IP和mac地址的对应关系,它是在之前获取IP的mac地址之后记录下来的.
通过ARP表就能直接确定目标计算机,但是仍然需要确定路由路径,但是计算机的ARP表中信息保存时间很短(一般10分钟),路由路径依然存在,不用重新获取.
在TCP通讯中IP首部就包含自己的mac地址和IP和源的mac地址和IP地址

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/89084

(0)
daishitongdaishitong
上一篇 2017-11-29 14:00
下一篇 2017-11-29 23:50

相关推荐

  • Linux基础学习总结(六)

    一、完成如下练习 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; vim: cp /etc/rc.sysinit /tmp/rc.sysinitvim/tmp/rc.sysinit:%s@^[[:space:]]\+@#&@g sed: sed “s/…

    Linux干货 2016-10-30
  • Linux系统中硬链接和软链接

    使用对象:linux初学者。   一、硬链接和软链接的概念 硬链接是给已经存在的数据文件另外创建一个名字,通过该名字也可以访问该数据文件。就好像给张三起个绰号叫“小二黑”,通过“张三”这个名字能找到这个人,通过“小二黑”这个名字也能找到这个人。        软链接是给文件名在其…

    Linux干货 2016-10-20
  • 从Linux小白到大牛——与狼共舞的日子8

    马哥教育网络班21期+第8周课程练习 1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥是第2层的设备,它设计用来创建两个或多个LAN分段。其中,每一个分段都是一个独立的冲突域。网桥设计用来产生更大可用宽带。它的目的是过滤LAN的通信流,使得本地的通信流保留在本地,而让那些定向到LAN其他部分(分段)的通信流转发到那里去。每…

    Linux干货 2016-11-14
  • 马哥教育N22期第八周作业

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 设备 功能 使用场景 区别 网桥 根据MAC地址来转发帧,本地通信只限本网段内, 相当于中继器,线路比较长保证信号不变形的传输 工作在物理层,相当于一个物理接口 集线器 接收到的数据包进行广播转发,所有端口都能收到此数据,通过MAC确认是不是发给自己的包进行回应 广播形式转发数据…

    Linux干货 2016-11-14
  • Linux的哲学思想及Linux发行版

    讲述一下几个问题: 第一,Linux的哲学思想;第二,Linux发行版的基础目录名称,命名法则和功用规定;第三,Linux不同发行版之间的联系和区别。 Linux的哲学思想: 1、一切皆文件。是Unix/Linux的基本哲学之一,不仅普通的文件,目录,字符设备,块设备,套接字等在Unix/Linux中都是以文件被对待。 2、小型,单一用途的程序。程序和可执行…

    Linux干货 2016-09-17
  • rsyslog将日志记录于MySQL中

    数据库服务器:CentOS7 192.168.119.159   日志:CentOS6 192.168.119.129     准备mysql数据库 和 用户账户 [root@localhost ~]# yum install mariadb-server   [root@localhost ~]# systemctl…

    2018-02-05