TCP/IP体系结构及协议

一、TCP/IP是当前使用最广泛的因特网体系结构,它是一个四层协议系统。

每一层负责不同的功能:

①应用层:负责处理特定的应用程序细节;

②运输层:为两台主机上的应用程序提供端到端的通信;

③网络层:处理分组在网络中的活动如分组的选路;

④数据链路层:也叫网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。

TCP/IP协议的工作流程:(应用层传输文件采用文件传输协议FTP)

①在目的主机上,应用层将一串数据流传送给运输层;

②运输层将数据流截成分组,并加上TCP报头形成TCP段报文,送交网络层;

③在网络层上给TCP段报文加上源、目的主机的IP报头,生成一个IP数据包,并发送给链路层;

④链路层在其MAC帧的数据部分装上IP数据包,再加上源、目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧发送给目的主机或IP路由器;

⑤在目的主机上,链路层将MAC帧的帧头去掉,并将IP数据包送交网络层;

⑥网络层检查IP报头,如果报头校验与计算机不一样,则丢弃IP数据包;若校验一样,则去掉IP报头,将TCP段送给运输层;

⑦运输层检查顺序号,判断是否是正确的TCP分组,然后检查TCP报头数据,若正确,则向源主机发送确认信息;若不正确或丢弃,则向源主机要求重发;

⑧在目的主机,传输层去掉TCP报头,将排好顺序的分组组成应用数据流发送给应用程序,这样目的主机接收到来自源主机的字节流就像直接接收来自源主机的字节流一样。

二、TCP三次握手 < 请求--->应答--->确认 >

位码即TCP标志位6种:SYN建立连接的标志位,ACK确认位,PSH传送,FIN结束关闭连接,RST重置,URG紧急;seq起始序号,ack确认号;

第一次握手:TCP客户机进程首先向
TCP服务机进程发送一个TCP报文段,其报文段首部中的标志位SYN=1(标志),起始序号seq=x,该报文段称为SYN报文段,它封装在一个IP数据包中发送给服务器;

第二次握手:TCP
SYN报文段到达服务机后,SYN和ACK均为1,确认号ack=x+1,服务机令自己的起始序号seq=y,此时称为SYNACK报文段发送给客户机;

第三次握手:收到SYNACK报文后,向服务机发送第三个报文段,对服务机允许连接的报文段进行确认,该报文段确认号ack=y+1,起始序号seq=x+1,发送完毕后,客户机和服务机都进入ESTABLISHED状态,完成三次握手,开始传送数据。

四次分手:

第一次分手:客户端发送一个FIN,用来关闭客户A到服务器B的数据传送,此后客户端进入FIN-WAIT-1状态,这个状态就表示socket想主动关闭连接,向对方发送FIN报文;

第二次分手:服务器收到FIN报文,它返回一个确认报文段(ACK=1),确认号seq为收到的序号加1,此时通知应用进程对方关闭连接,B还可以发送数据,A可以发送确认但不能发送数据,A收到确认报文后,由
FIN-WAIT-1变为FIN-WAIT-2;

第三次分手:服务器关闭与客户端的连接,发送一个FIN给客户端报文,服务器端等待客户端做最后的确认,处于LAST-ACK状态;

第四次分手:客户端发送ACK报文确认,确认号seq为收到的序号加1,发送完成后处于TIME-WAIT状态,再等待2MSL(可能因为超时服务器未收到ACK报文,无法保证最后发送的ACK报文一定会被对方收到,所以用来重发可能丢失的ACK报文)后即可回到CLOSED状态。

问题:建立连接协议时是三次握手而关闭连接时是四次分手:因为服务器端LISTEN状态下收到来自客户端的连接请求后,它可以把ACK和SYN(ACK应答确认作用,SYN同步作用)放在一个报文里发送;但当关闭的时候,客户端发送FIN关闭请求,仅仅表示客户端没有数据发送,而服务端未必没有数据发送,所以服务端会先发送数据给对方,最后才发送FIN报文表示同意关闭连接,所以这里的ACK报文和FIN报文是分开发送的。

TCP和UDP的区别:

TCP提供的是面向连接的、可靠地数据连接传输,在收发数据时,必须和对方建立可靠的连接,而UDP提供的是非面向连接的、不可靠的数据流传输,当它想传达时就简单的去抓取来自应用程序的数据,并尽可能快地把它扔到网络上,由于传输数据不建立连接,因此也就不需要维护连接状态,因此一台服务机可同时向多个客户机传输相同的消息。简单的说,TCP注重数据安全,而UDP数据传输快,但安全性一般。

三、ARP协议

ARP(Address
Resolution Protocol)即地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议,存在于网络层。

ARP的工作原理:


首先,每台主机都会在自己的ARP高速缓冲区(ARP cache)中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系;


当源主机需要将一个数据包发送到目的主机时,会首先检查自己的ARP列表中是否存在该IP地址对应的MAC地址,如果有,就使用此MAC地址;若没有,主机就先判断目的IP是否与自己在同一个网段(主机IP与子网掩码进行“与”操作),如果在一个网段,就向本地网络中的所有主机发起一个ARP请求的广播包,本地网络中的主机接收到ARP请求后查询此目的主机对应的MAC地址;如果目的主机在一个远程网络上,那么就通过路由器等路由设备转发此ARP请求到远程网络中的广播,此ARP请求数据包里包括源主机的IP地址、MAC地址、以及目的主机的IP地址;

③源主机和目的主机在一个网络内的情况下,网络中的所有主机收到这个ARP请求后,会检查数据包中目的IP和自己的IP是否一致,如果不一致就丢弃,但该主机仍然会检查自己的ARP高速缓存;若相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,然后给源主机发送一个ARP响应数据包,告诉它需要查找的MAC地址;

如果源主机和目的主机不在一个网络内,ARP请求将由路由器转发至其他网络,如果能找到目的主机,就将此路由器的MAC地址当做目的主机的网络地址转发给源主机,以后源主机与目的主机之间的信息交换都经过此路由器,这个路由器就被称作ARP代理;如果没有找到目的主机,在ARP高速缓存中会存在一条不完整的表项记录;

④源主机收到ARP响应包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,本机缓存是有生存期的,生存期结束后,将再次重复上面的过程,之后利用此信息进行数据的传输。

时间: 2024-10-12 09:39:42

TCP/IP体系结构及协议的相关文章

OSI,TCP/IP,五层协议的体系结构,以及各层协议

以下整理的是计算机网络的OSI,TCP/IP,五层协议的体系结构,以及各层协议,便于以后查看: OSI分层,自上而下分别是:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层 TCP/IP分层:网络接口层(对应OSI的物理层和数据链路层),网际层(对应OSI的网络层,定义了标准的分组格式和协议,即IP协议,当前采用ip4,下一版为ip6),运输层(对应OSI的传输层),应用层(对应OSI的会话层,表示层和应用层) 五层协议分别为:物理层,数据链路层,网络层,传输层,应用层 物理层:作用:

【网络基础】OSI TCP/IP体系结构

OSI参考模型是由国际标准化组织于1977年制定的,这是一个计算机互连的国际标准. ISO制定这一国际标准的宗旨就是使任何一种计算机系统无论位于世界任何地方,只要符合OSI标准就能和另一个遵守OSI标准的计算机系统实现互联通信. OSI模型分为7层:从下到上依次是物理层.数据链路层.网络层.传输层.会话层.表示层.应用层:OSI参考模型概念清楚,理论较完整,但它既复杂又不实用. 而TCP/IP体系结构却不同,是目前最流行的商业化网络协议,虽然不是标准化组织提出的正式标准,但它已经被公认为目前的工

TCP/IP 7 应用层协议

第8章 应用层协议 8.1 TCP/IP应用层协议主要是指OSI参考模型中的第5层.第6层.第7层上半部分的协议.(会话层,表示层,应用层) 应用层协议定义: 利用网络的应用程序有很多,包括web浏览器.电子邮件.远程登陆.文件传输.网络管理等.能够让这些应用进行特定通信处理的正是应用协议. TCP和IP等下层协议是不依赖于上层应用类型.适用性非常广的协议.而应用协议则是为了实现某种应用而设计和创造的协议. 应用协议与协议的分层: 应用可以直接享用传输层以下的基础部分.因为开发者只要关心选用哪种

TCP/IP体系结构

TCP/IP模型 TCP/IP分层模型由四个层次构成,从高到低各层依次为应用层.传输层.网际层和网络接口层,如图所示 各层的功能如下 (1) 应用层.应用层处在分层模型的最高层,用户调用应用程序来访问TCP/IP互联网络,以享受网络上提供的各种服务.应用程序负责发送和接收数据.每个应用程序可以选择所需要的传输服务类型,并把数据按照传输层的要求组织好,再向下层传送,包括独立的报文序列和连续字节流两种类型. (2) 传输层.传输层的基本任务是提供应用程序之间的通信服务.这种通信服务又叫端到端的通信.

TCP/IP体系结构-测试人员必须理解的

转:https://www.cnblogs.com/candle806/archive/2011/11/09/2242273.html#4339824 如果还想在测试这条路上继续走下去的话,那么下面这些东西就是我们必须去掌握的,至少你还不想止步于简单的黑盒测试--其实,一直想去接触Linux下的应用测试,这样能学到东西会很多,而且会非常的受用.之前听小布老师讲,如果你想在IT技术上长期发展下去,那么你就大胆拥抱Linux吧,因为在这里你能学到东西远胜过于你在Windows平台下学到的东西,而其中

TCP/IP的ICMP协议,端口号,TCP建立连接的3次握手

ICMP协议(Internet Control Message Protocol) 1.1. 定义:用于主机或路由器向源点发送差错信息或查询信息的协议. 1.2. 报文结构 IP首部(20个字节)注:ICMP的报文是封装在IP报文里面的,所以要包含IP首部 报文类型(2个字节) 报文字段(2个字节) 校验和(4个字节) ICMP报文内容(长度取决于ICMP报文的类型) 注:这里前八个字节为IP数据包的前八个字节,他们包含了应用程序在源目的主机上的端口号. 1.3. 报文类型 发生报文的情形分为2

TCP/IP篇--各协议简介

--百家菜 在学习网络方面的知识过程中,不可避免地要接触到各种协议,对于一开始接触协议的我们来说对于协议实在没有太多的概念和接触,如果你也是这样,那么博主的这一篇博文可能给你一些关于协议的概念.其中的部分介绍为博主自己总结而出,如有欠缺不当的地方,欢迎通过发表评论或线下交流的方式斧正. 关于协议数据的具体格式和数字表示可上网(百度等网站)或者抓包(抓包方式详细见博主的相关博文-<抓包篇--wireshark使用!>,链接http://powersource.blog.51cto.com/113

TCP/IP和HTTP协议代理

TCP/IP协议族 TCP/IP(传输控制协议/网际协议)是用于计算机通信的一个协议族. TCP/IP协议族包括诸如Internet协议(IP).地址解析协议(ARP).互联网控制信息协议(ICMP).用户数据报协议(UDP).传输控制协议(TCP).路由信息协议(RIP).Telnet.简单邮件传输协议(SMTP).域名系统(DNS)等协议. 1. 应用层 应用层包含一切与应用相关的功能,我们经常使用的HTTP.FTP,Telnet.SMTP等协议都在这一层实现. 2. 传输层 传输层负责提供

柯南君:看TCP/IP 之一 (协议分层)

柯南君:今天无意中翻到一本书<TCP/IP 详解 >,据说是一本不错的书,就情不自禁的读了起来,果不其然,很不错,通俗易懂,在这里,就加一点自己的想法,和大家分享一下: 为什么需要TCP/IP? 很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但T C P / I P协议族允许它们互相进行通信.这一点很让人感到吃惊,因为它的作用已远远超出了起初的设想.T C P / I P起源于6 0年代末美国政府资助的一个分组交换网络研究项目,到9 0年代已发展成为计算机之间最常应用的组网形