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
下一篇 2017-11-29

相关推荐

  • 基础网络配置

    配置文件: /etc/ude /proc/sys/net/ipv4/ip_forward /etc/sysconfig/network-scripts/ifcfg-IFACE 网络配置文件 /etc/sysconfig/network-scripts/route-IFACE 路由配置文件 配置文件里的设置: DEVICE:此配置文件应用到的设备 HWADDR…

    Linux干货 2017-05-08
  • N22-第五周作业

    1、显示当前系统上root、fedora或user1用户的默认shell; [root@localhost ~]# cat /etc/passwd | grep "^root" | cut -d: -f7 /bin/bash 2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello()…

    Linux干货 2016-09-15
  • VIM编辑器入门

    VIM简介 VIM是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是纯粹的自由软件。 VIM的使用 在介绍基本使用前,先了解下VIM的基本模式 基本模式可分为三种:命令模式、输入模式、末行模式 命令模式:Vim启动后的默认模式,通过输入指令完成对应的编辑操作。输入模式和末行模式从命令模式进入&nb…

    Linux干货 2016-04-05
  • 网络接口Bonding以及网络组

    网络接口Bonding就是将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。 网络组 :网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量。网络组不同于旧版中bonding技术,提供更好的性能…

    Linux干货 2016-11-23
  • CentOS 6的开机流程及root密码破解

    一、CentOS 6的开机流程详解 启动流程详解 1、POST:    Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘、CD-ROM光驱等硬件情况的检测。 2、BootSequence(BIOS):    决定那个磁盘…

    Linux干货 2016-09-13