IP协议和TCP协议的分析

一,TCP/IP协议栈的概述

TCP/IP协议栈是由美国国防部(DoD)在20世纪60年代创建的(比OSI模型还早),是一种具体实现标准。

分为4层:网络接入层(链路层),Internet层(网络层),主机到主机层(传输层),应用层

由于TCP/IP协议栈涉及的知识点很多,而其中最主要的协议是IP协议和TCP协议,故本文主要是针对IP和TCP协议来分析,其他的知识点后续补上。

二,IP协议

IP(Internet Protocol,网际协议)是TCP/IP协议栈中最重要的协议(位于网络层),用于实现数据的不可靠面向无连接通信,实现三层数据封装与IP寻址。

什么是不可靠?

不可靠的意思就是它不能保证IP数据包能百分百到达目的地

什么是面向无连接?

意思是I P并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。IP数据报可以不按发送顺序接收。如果一信源向相同的信宿发送两个连续的数据报(先是 A,然后是B) ,每个数据报都是独立地进行路由选择,可能选择不同的路线,因此B可能在A到达之前先到达。

1.IP头部格式

(1)版本

4bit,用于标记IP协议的版本。IPv4---->4;IPv6--->6.

(2)首部长度

4bit,可表示的最大十进制为15.指示IP报头长度,指出IP报头的结束位置或数据的开始位置

接收方可知道如何根据首部长度来解封装

(3)服务类型

ToS,8bit,提供QoS服务质量技术用于实现流量标记

(4)总长度

总长度指首部和数据之和的长度,单位为字节。字段16bit。

(5)标识符

16bit,用于标志分片的进程

(6)标志符

3bit,第一个比特位0:表示保留或未使用;第二个比特DF位:DF=1,表示该数据包不应该被分段;DF=0,表示可以根据需要对数据包进行分段。第三个比特位MF位:表示该分段是最后一个分段(比特为0)或者后面更多的分段(比特为1)。

(7)片偏移量

13bit,用于告知接收方每个分片距离IP头部的位置,才能实现有序的重新组装

(8)生存时间

8bit,TTL最大值为255;标记路径和防环。

(9)协议

8bit,标记上层协议

(10)首部检验和

16bit,校验数据包的完整性

(11)源IP地址

32bit,发送者的IP地址

(12)目的IP地址

32bit,接收者的IP地址

(13)选项

options,可变长度该字段为可选字段

常见:记录路由选项,时间戳选项以及用来增强traceroute程序的路由选项

(14)填充

Padding,可变长度,如果IP报头大小不是32比特的整数倍,则会在报头填充0直至32比特

(15)数据

可变长度,是在IP包中进行传输并通过协议字段进行标识的数据

三,TCP协议

TCP(Transmission Control Protocol,传输控制协议)是TCP/IP协议栈中算法最多,功能最繁杂的重要的协议(位于传输层)。

  1. TCP提供的功能

    面向连接(三次握手,四次挥手)

    可靠传输(超时重传,快速重传)

    流量控制(滑动窗口,拥塞控制)

    多路复用(套接字,Socket)

2.原理

2.1 面向连接(三次握手,四次挥手)

三次握手:(下图所示)

注:三次握手是一个会话的建立过程,此过程没有正式的数据包的传送。

SYN(同步位)用于实现端口请求,ACK(确认位)用于实现端口回复

四次挥手(见下图):

问题:为什么关闭时要四次,而不是三次呢?

因为在一方传输数据结束的时候,可能另一方还在传输数据,所以需要四次。

2.2 可靠传输

见下图:

利用Seq(序列号)和ACK(确认号)来保证可靠传输。

2.3 流量控制

利用滑动窗口来达到流量控制

2.4 多路复用

利用套接字socket来实现多路复用,socket=ip+port。比如多个客户端要连接同一个服务器,就需要多路复用。

时间: 2024-10-03 15:33:55

IP协议和TCP协议的分析的相关文章

了解HTTP协议和TCP协议

HTTP(超文本传输协议),互联网上应用最为广泛的一种网络协议.所有的www文件都必须遵守这个标准.HTTP是一个客户端和服务端请求和应答的标准(TCP):客户通过浏览器发起一个到服务器上指定端口的HTTP请求.通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口的TCP连接.HTTP服务器则在那个端口监听客户端发送过来的请求.一旦收到请求,服务器(向客户端)发回一个状态.HTTP使用TCP而不是UDP的原因在于(打开)一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,

网络学习之OSI七层协议和TCP协议

OSI七层简单介绍 应用层:提供操作系统和应用程序的接口 表示层:表示数据如何加密.如何压缩的 会话层:将不同应用程序数据分离 传输层:提供可靠和不可靠的数据传输和重传.纠错的功能 网络层:提供IP地址,通过IP地址路由器能选择数据从哪一条路径走是最优的 数据链路层:将数据分组拆分成字节,合并成数据帧 物理层:在设备与设备之间传输比特流 OSI七层详解 应用层 作用:用户可以通过应用程序和操作系统通信 协议:HTTP.SMTP.FTP.Telnet 表示层 作用:数据以何种方式表示,由于计算机只

2.tcp/ip协议分析-IP协议、ARP协议和RARP协议

IP协议是TCP/IP协议族中最核心的协议,它提供不可靠.无连接的数据报传输服务.所以理解IP协议对于我们学习网络至关重要. IP首部 重要字段介绍: 4bit首部长度:以4字节为单位,决定了IP首部长度最大为15*4=60,一般的IP数据报首部长度为20,此时该字段为5. 8bit的服务类型:包括一个3bit的优先权子字段(可以忽略),4bit的tos子字段和1bit的未用位但必须置0.4bit的TOS分别代表:最小延时.最大吞吐量.最高可靠性和最小费用. 比如在telnet交互应用中就要求有

对TCP/IP协议的一些看法(3):SLIP协议和PPP协议

今天主要讲一下我对链路层上的SLIP协议和PPP协议的看法.今天应该是写的第三天了,为自己的坚持点个赞. SLIP协议其实用到的并不多,它全名叫serial line imternet protocol,译为中文是串行线路网际协议.它属于低速串行线路,可用于专业线路,也可用于拨号线路,传输速率在1200bps到19200bps之间.对slip帧(因为它是链路层协议)的格式,主要需要记住的是一个END位,位于帧的首部和尾部,用于判断帧的开始与结束.这样就可能存在如果在帧中间有个END的话,数据帧就

TCP协议和UDP协议的区别

转载:http://www.cnblogs.com/obama/p/3292335.html  作者: 曾见绝美的阳光 第一部分:TCP/IP相关知识点 对TCP/IP的整体认 链路层知识点 IP层知识点 运输层知识点 应用层知识点 (这些知识点都可以参考:http://www.cnblogs.com/newwy/p/3234536.html) 第二部分:常见面试题 TCP协议和UDP协议的区别是什么 TCP协议是有连接的,有连接的意思是开始传输实际数据之前TCP的客户端和服务器端必须通过三次握

TCP协议和UDP协议

TCP协议和UDP协议 TCP协议和UDP协议 TCP(Transmission Control Protocol)可靠的.面向连接的协议(eg:打电话).传输效率低全双工通信(发送缓存&接收缓存).面向字节流.使用TCP的应用:Web浏览器:电子邮件.文件传输程序. UDP(User Datagram Protocol)不可靠的.无连接的服务,传输效率高(发送前时延小),一对一.一对多.多对一.多对多.面向报文,尽最大努力服务,无拥塞控制.使用UDP的应用:域名系统 (DNS):视频流:IP语

(1)网络编程的常识 (2)基于tcp协议的编程模型 (3)tcp协议和udp协议的比较 (4)基于udp协议的编程模型

1.网络编程的常识 目前主流的网络通讯软件有:微信.QQ.YY.陌陌.探探.飞信.阿里旺旺.... 在吗? 1.1 七层网络模型(熟悉) 为了保证数据传递的可靠安全等等,ISO(国际标准委员会组织)将数据的传递从逻辑上划分为以下七层: 应用层.表示层.会话层.传输层.网络层.数据链路层.物理层. 在发送数据之前要按照上述七层协议从上到下一层一层进行加包处理,再发送出去; 在接收数据之后要按照上述七层协议从下到上一层一层进行拆包处理,再解析出来: 1.2 常用的协议(熟悉) http协议 - 超文

tcp协议和udp协议的差别

tcp协议和udp协议的差别 是否连接          面向连接                 面向非连接 传输可靠性       可靠                       不可靠 应用场合         传输少量数据         大量数据 速度                   慢                            快 TCP要求和服务器保持连接  UDP不需要   TCP数据是有序的(先写的数据对方一低昂先收到)UDP数据是无序的 AsyncSocke

RS-232协议和RS-485协议

RS232 RS232是一种异步传输标准接口.通常 RS-232 接口以9个引脚 (DB-9) 或是25个引脚 (DB-25) 的型态出现 .RS232最常用的连接方式是三根线:一条发送线.一条接收线及一条地线. 电平信号:逻辑1(MARK)=-3V--15V,逻辑0(SPACE)=+3-+15V 传输距离:RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信距离为15m:若每米电缆的电容量减小,通信距离可以增加.传