TCP/IP协议模型详解

一、网络协议模型

1.OSI七层网络协议模型

OSI七层协议(Open
System Interconnection):将网络连接过程分成数个层次(layer),每个层次负都有特定的独立功能,且每个层次的程序代码可以独立撰写,每个层次间的功能不会相互干扰。

说明:

1)越接近硬件的层次为底层(layer1),越接近应用程序的则为高层(layer7)

2)接收端或者发送端,每一层只认识对方的同一层次的数据

3)每层都有其独特的头部数据header,告知对方信息,其后的数据为真实数据

(1)物理层Physical Layer

定义传输设备的电压与信号等,连接数据帧转换成比特流的编码方式,最后连接实际传输介质发送/接收比特信号

(2)数据链路层Data-Link Layer

下层为实体的定义,上层为软件封装的定义。数据链路层又可分为两层:

偏向硬件介质:MAC数据帧,media Access Control frame,网络接口所能处理的主要数据包裹,被物理层编码成比特流

偏向软件层面:逻辑链路层(Logical
Link Control)多任务处理来自上层的数据包数据并转换成MAC格式

信息交换、流量可控制、数据问题处理

(3)网络层Etwork Layer

定义IP(Internet
Protocol)和路由概念,计算机间的连接建立、终止和维持,数据包的传输路径选择

(4)传输层Transport Layer

发送端和接收端连接技术,如TCP、UDP… 包括数据包格式、数据包发送、流程的控制、传输过程的帧检测与重新传送

(5)会话层Session Layer

定义两个四肢间的连接信道的连接与中断,在确定网络服务建立连接的确认

也可以建立应用程序的会话、提供其他加强型服务

(6)表示层Presentation Layer

网络服务(或程序)之间的数据格式转换:将来自本地端应用程序的数据格式转换或重新编码成网络的标准格式

加密解密技术

(7)应用层Appliation Layer

应用程序并不属于应用程序本身,用来同一管理调度数据对应其发送和接收的应用程序

定义应用程序如何进入该层的沟通接口,以将数据接收或发送给应用程序,最终展示给用户

2.TCP/IP协议

TCP/IP协议在OSI七层协议的观念上进行简化为四层结构,在结构上没OSI七层协议严谨,但时程序撰写上会容易得到广泛使用。

TCP/IP协议将应用层、表示层、会话层整合为应用层

应用层:将数据封装一个TCP/IP协议组内某个特定使用到的协议,交由传输层处理

传输层:放入TCP封装内,并给予TCP封装的首部报文,交由网络层处理

网络层:封装IP数据包内,给予IP首部,交由网络接口层处理

网络接口层:MAC封装,比特流传输

3.网络模型对应层级关系

OSI七层协议只是一个参考模型,过于详细阐述网络出书各方面情况,实际生产中为TCP/IP协议

二、网络层:IP协议

1.IP协议

(1)IP协议版本

IPv4:32bits分为四段,点分十进制表示,8bits.8bits.8bits.8bits

每8bits表示用以数字0-255标识

00000000.00000000.00000000.00000000 ===》 0.0.0.0

11111111.11111111.11111111.11111111 ===》 255.255.255.255

IPv6:128bits二进制

(2)IP(Internet
protocol)地址:网络号+主机号

在同一物理网段内,主机的IP具有相同的网络号,并具有独特的主机号;同一网段内的主机其主机号不能相同

注意:

1) 同一网段内,网络号不变,主机号不能重复

2)全0表示为整个网段的地址,全1表示为广播地址

(3)IP地址分类:

A类:

第一段为网络号,后三段为主机号

网络号:0
000 0000 - 0 111 1111:1-127

网络数量:126,127

每个网络中的主机数量:2^24-2

默认子网掩码:255.0.0.0,/8

用于与IP地址按位进行“与”运算,从而取出其网络地址;

1.3.2.1/255.0.0.0
= 1.0.0.0

1.3.2.1/255.255.0.0=
1.3.0.0

私网地址:10.0.0.0/255.0.0.0

B类:

前两段为网络号,后两段为主机号

网络号:10
00 0000 - 10 11 1111:128-191

网络数:2^14

每个网络中的主机数量:2^16-2

默认子网掩码:255.255.0.0,/16

私网地址:172.16.0.0-172.31.0.0

C类:

前三段为网络号,最后一段为主机号

网络号:110
0 0000 - 110 1 1111:192-223

网络数:2^21

每个网络中的主机数量:2^8-2

默认子网掩码:255.255.255.0,  /24

私网地址:192.168.0.0-192.168.255.255

D类:组播的特俗公用

1110 0000 - 1110 1111:224-239

E类:保留

240-255

总结:

Class A:0.xx.xx.xx
~ 127.xx.xx.xx,私有地址10.0.0.0 ~ 10.255.255.255

Class B:128.xx.xx.xx  ~ 191.xx.xx.xx,私有地址172.16.0.0
~ 172.31.255.255

Class C:192.xx.xx.xx  ~ 223.xx.xx.xx,私有地址192.168.0.0
~ 192.168.255.255

Class D:224.xx.xx.xx  ~ 239.xx.xx.xx

Class E:240.xx.xx.xx  ~ 
255.xx.xx.xx

注意:Loopback IP网段

lo网络,当初被用来作为测试操作系统内部循环所用的一个网络,同时还能提供系统内部原本就需要使用网络接口的服务所使用。为内部循环网络,无需安装网卡使用,其地址号为127.0.0.0/8,默认的主机IP是127.0.0.1,即为localhost

2.Netmask子网掩码

将一个大的网段地址划分成更小的网络地址,减少网段内的主机数量,使得更加方便管理,以及广播时效率提高

方式:通过将一位或多位主机号当做网络号来使用,将网络号全部表示为1,主机号全部用0标识来进行子网划分

3.ip报文首部( 每行占用的位数为32bits)

(1)IP Version:声明ip数据包的版本,ipv4、ipv6

(2)IHL:Internet Header Length,ip报文首部长度,以4字节为一个单位来记录IP报头的长度

(3)TOS:Type Of Service,服务类型,通过定义来标识IP数据包的优先级、延迟、传输量和可靠度等信息

(4)Total Length:IP数据包的总长度,包括报头和数据部分、用16个字节表示0-65535bytes

(5)Identtification:标识信息,辨识数据段是否为一个数据

(6)Flags:特殊标志R、DF、MF,内容可以标识为"0DM"

D:0表示可以分段,1表示不可以分段

M:0表示此IP为最后分段,1表示非最后分段

(7)Fragment Offset:分段偏移量,用以标识这个IP分段在原始的IP数据包中所占的位置,类似于序号作用

(8)Time To Live:存在时间,最多255次转发,每次经过一个路由器减一到0丢弃不再转发

(9)Protocol Number:报文协议代码(TCP--6、UDP--17、ICMP--1、IP--4… ...),数字描述;

(10)Header Checksum:报头首部校验码,用于检测IP报头是否存在错误

(11)Source Address:来源IP地址

(12)Destination Address:目标IP地址

(13)Options:填充位,提供包括安全处理机制、路由记录、时间戳、严格与宽松的来源路由等

(14)Data:真实数据

三、传输层:TCP协议

1.TCP报文首部

(1)Source Port:源端口号

(2)Destination Port:目标端口号,通过16位字节标识0-65535共65536个端口

(3)Sequence Number:数据包序列号,TCP数据分段

(4)Acknowledgement Number:回应序列号

一次发一批报文时候使用序列号和确认号,TCP三次握手的第一次无确认号

(5)Header Length:首部长度

(6)Reserved:保留位(6位);

(7)Code:control Flag,标志控制码

该字段有6个bits组成,每个bits标识一种含义,用以说明这个连接的状态,让接收端连接这个数据包的主要动作

URG(Urgent):1标识为紧急数据包,接收端要紧急处理,且Urgent Pointer字段也会被启用

ACK(Acknowledge):1表示为响应数据包,和Acknowledeg Number有关

PSH(Push Function):1表示要求对方立即传送缓冲区内的其他对应数据包,无需等待缓冲区满才传送

RST(Reset):1表示强制结束连接,且发送端已经断线

SYN(Synchronous):1表示发送端希望双方建立同步处理(要求建立连接),主动要连接到对方

FIN(Finish):1表示传输结束

(8)Window Size:窗口滑动,用来控制数据包的流量,0表示缓冲器已经额满,所以应该暂停数据传输

(9)TCP Checksum:确认校验码

(10)Urgent Pointer:紧急数据

(11)Options:填充位,可变长度,多数情况不使用

(12)Data:数据

2.TCP协议三次握手机制

Three-way handshake:TCP在建立连接之前都必须要通过的三个确认动作

(1)第一阶段:数据包发起

1)随机取用大于1024的端口,监听用于和应用程序通信

2)TCP报头:SYN=1,表示要求建立连接,,主动连接到对方

3)TCP报头:Sequence Number(Client)记录下第一次发送出连接数据包给服务器端的序列号

(2)第二阶段:数据包接收和确认数据包传送

1)服务器端接收到数据包,并确认所接收的数据包

2)回应数据包:TCP报头中

SYN=1,ACK=1,表示主动连接且为响应数据包

Acknowledgement Number(Service)=Sequence Number(Client) + 1,给客户端确认使用

Sequence Number(Service)新数字,用于确认客户端确实可以收到服务器端的数据包

3)等待客户端响应

(3)第三阶段:回送确认数据包

1)确认收到报文的Acknowledgement Number(Service)是否为Sequence Number(Client) + 1

2)再次发送数据吧:ACK=1,Acknowledgement
Number(Client)=Sequence Number(Service) + 1

(4)第四阶段:取得最后确认

服务器端验证

时间: 2024-10-21 20:27:01

TCP/IP协议模型详解的相关文章

计算机网络——TCP/IP协议族详解

一.OSI七层协议体系结构域TCP/IP四层体系结构对比 ISO/OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI. TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议,通过20多年的

OSI七层模型和TCP/IP五层模型详解

OSI是一个开放性的通信系统互连参考模型,他是一个定义得非常好的协议规范.OSI模型有7层结构,每层都可以有几个子层. OSI的7层从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层 :其中高层(即7.6.5.4层)定义了应用程序的功能,下面3层(即3.2.1层)主要面向通过网络的端到端的数据流. 一.OSI参考模型 今天我们先学习一下以太网最基本也是重要的知识——OSI参考模型. 1.OSI的来源 OSI(Open System Interc

TCP/IP五层模型详解

将应用层,表示层,会话层并作应用层,从tcp/ip五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议就理解了整个互联网通信的原理. 首先,用户感知到的只是最上面一层应用层,自上而下每层都依赖于下一层,所以我们从最下一层开始切入,比较好理解每层都运行特定的协议,越往上越靠近用户,越往下越靠近硬件 物理层 物理层由来:孤立的计算机之间必须完成组网. 物理层功能:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0 数据链路层 数据链路层的功能:定义了电信号的分组方式

TCP/IP协议——ARP详解(转载)

本文主要讲述了ARP的作用.ARP分组格式.ARP高速缓存.免费ARP和代理ARP. 1.学习ARP前要了解的内容 建立TCP连接与ARP的关系 应用接受用户提交的数据,触发TCP建立连接,TCP的第一个SYN报文通过connect函数到达IP层,IP层通过查询路由表: 如果目的IP和自己在同一个网段: 当IP层的ARP高速缓存表中存在目的IP对应的MAC地址时,则调用网络接口send函数(参数为IP Packet和目的MAC))将数据提交给网络接口,网络接口完成Ethernet Header

TCP/IP协议——ARP详解

本文主要讲述了ARP的作用.ARP分组格式.ARP高速缓存.免费ARP和代理ARP. 1.学习ARP前要了解的内容 建立TCP连接与ARP的关系 应用接受用户提交的数据,触发TCP建立连接,TCP的第一个SYN报文通过connect函数到达IP层,IP层通过查询路由表: 如果目的IP和自己在同一个网段: 当IP层的ARP高速缓存表中存在目的IP对应的MAC地址时,则调用网络接口send函数(参数为IP Packet和目的MAC))将数据提交给网络接口,网络接口完成Ethernet Header

网络编程之TCP/IP各层详解

网络编程之TCP/IP各层详解 我们将应用层,表示层,会话层并作应用层,从TCP/IP五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议,就理解了整个物联网通信的原理. 首先,用户感知到的只是最上面一层--应用层,自上而下每层都依赖于下一层,所以我们从最下层开始切入,比较好理解. 每层都运行特定的协议,越往上越靠近用户,越往下越靠近硬件. 一.物理层 由来:孤立的计算机之间要一起"玩耍",就必须接入Internet,即计算机之间必须完成组网. 物理层功能:主要是基于电器特性发

ISO/OSI网络体系结构和TCP/IP协议模型

1. ISO/OSI的参考模型共有7层,由低层至高层分别为:物理层.数据链路层.网络层.传输层.会话层.表示层.     应用层.各层功能分别为: (1)物理层          提供建立.维护和拆除物理链路所需的机械.电气.功能和规程的特性:提供有关在传输介质上传输非结构的位流 及物理链路故障检测指示.在这一层,数据还没有被组织,仅作为原始的位流或电气电压处理,单位是比特. (2)数据链路层         负责在两个相邻结点间的线路上,无差错地传送以帧为单位的数据,并进行流量控制.每一帧包括

OSI参考模型与TCP/IP协议模型

OSI和TCP/IP都是为了计算机之间更好的互联的. 计算机网络是一个复杂的系统,比如两台计算机进行通信不仅仅只是有一条通信线就可以了. 还有很多的工作需要完成,例如: 如何知道对方计算机是否做好准备,网络如何识别对方计算机等问题,正如我们平时打电话 不可能拿起电话就直接挂机一样,很多问题需要协调和解决. 如何解决这些赋值的问题,早在ARPnet设计时,就提出了"分层"的方法, 即将庞大而复杂的问题分为若干较小的易于出来的局部问题. 由于计算机网络的发展,对于如何保证计算机系统之间的协

TCP/IP 参数配置详解

了解LINUX TCP/IP的参数配置是网络性能调优的前提,但是要清楚的记得这几十个参数也不容易,为了方便下次查看,所以查找了linux的manual手册和网上的资料.主要列出了"/proc/sys/net/ipv4"下面的参数. 1.IP 参数 ●ip_always_defrag: 在LINUX早期的版本中出现,现在已经没有了,就不作说明了. ●ip_autoconfig:这个没有文档说明. ●ip_default_ttl (整数; 默认值:64; since Linux 2.2):