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)
上一篇 2017-11-29 14:00
下一篇 2017-11-29 23:50

相关推荐

  • Linux下常用的日志收集命令(Redhat&SuSe)

       Linux下日志的采集和分析是一个非常重要的工作,一般厂商在你需要技术支持的时候,都需要你通过对应指令收集系统的信息,我这边列举下常用的两个Linux厂商的收集命令(Redhat Linux以及SuSe Linux),便于收集后,对系统进行全面分析。   sosreport是一个类型于supportconfig …

    系统运维 2016-07-07
  • 硬盘分区MBR和GPT选哪个好?有什么区别?

    当前主流的硬盘分区方式有两种:MBR和GPT。 一、MBR与GPT简介与结构 什么是MBR?         MBR,全称为Master Boot Record,即硬盘的主引导记录。是对IBM兼容机的硬盘或者可移动磁盘分区时,在驱动器最前端的一段引导扇区。 MBR的组成部分       &…

    Linux干货 2016-08-29
  • sed详解

    sed命令:    文本处理三剑客:        grep, egrep,fgrep: 文本过滤器        sed :Stream EDitor, 流编辑器,行        awk: 文本格式工具,报告生成器 …

    Linux干货 2016-12-13
  • 文本编辑器:vim 基础篇

       VI:Visual Interface,是一种文本编辑器,还是全屏编辑器。   VIM:Vi IMproved,vi的增强版,vim是模式化的编辑。 VIM的三种模式:        编辑模式(命令模式,默认模式)       插入模…

    Linux干货 2016-08-18
  • linux 进程解析

    博文介绍了进程信息以及部分进程管理命令

    2017-09-09
  • 正则表达式练习

       grep练习  : 1 、显示/proc/meminfo 文件中以大小s 开头的行:  2 、显示/etc/passwd 文件中不以/bin/bash 结尾的行      3 、显示用户rpc 默认的shell        4 、找出/etc…

    Linux干货 2016-08-10