Transmission Control Protocol/Internet Protocol(TCP/IP)

TCP/IP特性:

    Connectionless Packet Delivery Service:它是其他网络服务的基础,几乎所有封包交换网络都提供这种服务。TCP/IP是根据信息中所含的地址数据来进行数据传送,它不能确保每个独立路由的封包是可靠和依序的送达目的地。在每一个连线过程中,线路都不是被“独占”的,而是直接映射到硬件地址上,因此特别有效。更重要的是,此种封包交换方式的传送,使得TCP/IP能适应各种不同的网络硬件。

    Reliable Stream Transport Service:因为封包交换并不能确保每一个封包的可靠性,因此我们就需要通讯软件来自动侦测和修复传送过程中可能出现的错误和处理不良的封包。这种服务就是用来确保电脑程式之间能够建立连接和传送大量数据。关键的技术是讲数据流进行切割,然后编号传送,然后透过接收方的确认来保证数据的完整性。

    Network Technology Independent:在封包交换技术中,TCP/IP是独立于硬件之上的。TCP/IP有自己的一套数据包规则和定义,能应用在不同的网络之上。

    Universal Interconnection:只要电脑用TCP/IP连接网络,都将获得一个独一无二的识别地址。数据包在交换的过程中,是以位地址数据为依据的,不管封包所经过的路由是如何选择的,数据都能被送到指定的地址。

    End-to-End Acknowledgements:TCP/IP的确认模式是以“端到端”进行的。这样就无需理会封包交换过程中所参与的其他设备,发送端和接收端能相互确认。

    Application Protocol Standards:TCP/IP除了提供基础的传送服务,它还提供许多一般应用标准,让程序设计人员更有标准可依,而且也节省了许多不必要的重复开发。


ARP(Address Resolution Protocol):

    1,首先,每一台主机都会在ARP快去缓冲区(ARP Cache)中建立一个ARP表格,用来记录IP地址和物理地址的对应关系。这个Table的每一份数据会根据自身的存活时间消减而最终消失,以确保资料的真实性。

    2,当发送主机有一个封包要传送给目的主机的时候,并且获得目的主机的IP地址;那发送主机会先检查自己的ARP表格中有没有该IP地址的物理地址对应。如果有,就直接使用此地址来传送框包;如果没有,则向网络发出一个ARP Request广播封包,查询目的主机的物理地址。这个封包会包含发送端的IP地址和物理地址数据。

    3,这时,网络上所有的主机都会收到这个广播封包,会检查封包的IP是否和做自己的IP地址一致。如果不是则忽略;如果是则会先将发送端的物理地址和IP数据更新到自己的ARP表格去,如果有该IP的对应,则用新数据覆盖原来的;然后再回应一个ARP Reply封包给对方,告知发送主机自己的物理地址。

    4,当发送端接到ARP Reply之后,也会更新自己的ARP表格;然后就可以用此记录进行传送了。

    5,如果发送端没有得到ARP Reply,则宣告查询失败。

ARP表格,只有在TCP/IP协议被载入核心之后才会建立,如果TCP/IP协议呗卸载或关闭机器,那么表格就会被清空;到下次协议载入或开机的时候再重新建立,而同时会向网络发出一个ARP广播,告诉其他奇迹它的目前地址是什么,以便所有机器都能保持最正确的数据。


IP协议的功能包括如下:

    1,定义数据在网际网络中传输的基本单位。

    2,定义网际网络的定址方式。

    3,负责网络存取层和传送层之间的数据传送。

    4,决定数据传送的路由路径。

    5,执行数据的分解和重组。


IP封包的组成部分,以及各部分的长度。

Version:版本(VER)。表示的是IP规格版本。

Internet Header Length:标头长度。

Type of Server:服务类型(TOS)。这里指的是IP封包在传送过程中要求的服务类型,其中一共由8bit组成,每个bit组合分别代表不同的意思。


Total Length:封包长度。通常以byte做单位来表示该封包的总长度,此数值包括标头和数据的总和。

Identification:识别码。每一个IP封包都有一个16bit的唯一识别码。当程序产生的数据要通过网络传送时,都会在传送层被拆散成封包形式发送,当封包要进行重组的时候,这个ID就是依据了。

Flag:旗标。这时当封包在传输过程中进行最佳组合时使用的3个bit的识别记号。

Frament Offset:分割定位。当一个大封包在经过一些传输单位(MTU)较小的路径时,会被切割成碎片再进行传送(这个切割和传送层的打包有所不同,它是由网络层决定的)。由于网络情况或其他因素影响,其抵达顺序并不会和当初切割顺序一致。所以当封包进行切割的时候,会为各片段做好定位记录,所以在重组的时候,就能够依号入座了。如果封包没有被切割,那么此值为0。

Time To Live:存活时间。在IP协议中,TTL是以hop为单位,每经过一个router就减一,如果封包TTL值被降为0的时候,就会被丢弃,这样,当封包在传送过程中由于某些原因而未能抵达目的地的时候,就可以避免其一直充斥在网络上面。

Protocol:协议。这里指的是该封包所使用的网络协议类型。这里使用的协议是网络层的协议。

Header Checksum:标头检验值。这个数值主要是用来检错用的,用以确保封包被正常无误的接收到。当封包开始进行传送后,接收端主机会这个检验值来检验余下的封包,乳沟一切无误,就会发出确认信息,表示接受正常。

Source IP Address:来源地址。发送端的IP地址。

Destination IP Address:目的地址。接收端的IP地址。

Option & Padding:用的很少。


讲IP地址全部用二进制来表示的话,如果是以“0”开头的,这是一个A Class的IP;如果是以“10”开头的,这是一个B Class的IP;如果是以“110”开头的,则属于C Class的IP。

A Class的IP使用最前面一组数字来做Net ID,其余三组做Host ID;

B Class的IP使用前面两组数字来做Net ID,其余三组做Host ID;

C Class的IP使用前面三组数字来做Net ID,其余三组做Host ID。


    一个TCP封包的表头包括如下:

    

Source Port & Destination Port:每一个TCP封包都包含有来源端和目的端的端口号码。

Sequence Number:封包序号。当数据从一台主机传送去另一台主机的时候,发送端会为封包建立起一个起始序号,然后按照所传送的数据长度,依次递增;根据此原理,我们可使用递增之后的值作为下一个封包的序号。

Acknowledge Number:回应序号。当接收端接收到TCP封包并通过检验确认之后,会依照发送序号、再加上数据长度产生一个回应序号,附在下一个回应封包送回给对方,这样发送端就知道刚才的封包已经被成功接收到了。

Data Offset:这是用来记录表头长度用的。

Reserved:保留位。

Contorl Flag:控制旗标。

        Urgent data:当URG被设定为1的时候,就表示这是一个拥有紧急数据的封包,接收端需优先处理。

        Acknowledge field significant:当ACK为1的时候,表示此封包的Acknowledge Number是有效的,也就是用来回应上一个封包。

        Push function:如果PSH为1的时候,该封包连同传送缓冲区的其他封包应立即进行传送,而无需等待缓冲区满了才送。接收端必须尽快将此数据交给程序处理。

        Reset:如果RST为1的时候,连接会被马上结束,而无需等待终止确认手续。

        Synchronize sequence numer:如果SYN为1时,表示要求双方进行同步处理,也就是于要求建立连接。

        No more data fro sender:如果封包的FIN为1的时候,就表示传送结束,然后双方发出结束回应,进而正式进入TCP传送的终止流程。

    Window:滑动视窗。可得知对方目前的接受缓冲区大小,从而决定下一个传送Window的大小。

    Checksum:当数据要传送出去的时候,发送端会对数据进行一个校验的动作,然后将校验值填在这里;当接收端收到封包之后,会再对数据进行校验,再比对校验值是否一致。若结果不一致则认为数据已损毁,并要求对方重发。

    Urgent Pointer:如果URG被设定为1的时候,这里就会指示出紧急数据所在的位置。

    Option:比较少用。

UDP封包表头格式:

    

    Source Port & Destination Port。

    Message Length:封包及数据的长度。

    Checksum:封包及数据的校验值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值