首页
学习
活动
专区
工具
TVP
发布

浅谈TCP IP协议栈(四)IP协议解析

通过之前的网络层基础知识,IP地址以及路由器的简介,大家应该对于TCP/IP有一个大致的了解,在脑海里应该对于网络的几个基础概念有个大概的了解,简单点说整个协议栈就是在做一件事,规定网络报文(网络传输中的数据报...最常用的开始学起: 链路层——以太网、VLAN 网络层——IP协议 传输层——TCP/UDP协议 应用层——HTTP协议 上面的几种协议,如果都能熟练掌握,那基本上就是入门并且偏上的水平了,所以接下来我们就逐一介绍各个协议...我们重点介绍IP首部,可以看到,每一行是4个字节,也就是32位,而对于每一行我们又根据位数分为不同的字段,先来看看每个字段具体的含义: 第一段: 4位版本号:取值为4时代表IPV4协议,取值为6时代表IPV6...8位协议:代表着这份IP报文承载着何种上层传输协议或者网络协议,常见的取值与对应关系如下: ICMP协议 IGMP协议 TCP协议 UDP协议 IGRP协议 16位首部校验和:用于检验收到的报文是否有差错...第四段: 32位源IP地址:发送方IP地址 第五段: 32位目的IP地址:接收方IP地址 介绍完IP报文的格式以后,我们再来说一下IP报文的特点,其主要特点有以下几点: IP报文具有不可靠性,即不能发送方发送报文后

1.4K40

TCP、UDP、IP 协议分析

互连网早期的时候,主机间的互连使用的是NCP协议。这种协议本身有很多缺陷,如:不能互连不同的主机,不能互连不同的操作系统,没有纠错功能。为了改善这种缺点,大牛弄出了TCP/IP协议。...现在几乎所有的操作系统都实现了TCP/IP协议栈。 TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议,如下图 ? 所谓的协议就是双方进行数据传输的一种格式。...整个网络中使用的协议有很多,所幸的是每一种协议都有RFC文档。在这里只对IPTCP、UDP协议头做一个分析。 首先来看看在网络中,一帧以太网数据包的格式: ?...1.IP 头格式 ? (1)版本 占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。关于IPv6,目前还处于草案阶段。...我们在说TCP的时候,说到MSS很多人不能区分它们。通过下面的图,我想就可以完全区分它们了。 ? 个人觉的如果通过TCP协议传输数据,到IP层的时候,可定不需要分片了。

2.5K31
您找到你想要的搜索结果了吗?
是的
没有找到

TCP IP模型:什么是TCP IP堆栈?协议层,优点

TCP / IP代表传输控制协议/ Internet协议。它专门设计为一种模型,可通过不可靠的网络提供高度可靠且端到端的字节流。...TCP特性 这是TCP / IP协议的基本特征 支持灵活的架构 向网络添加更多系统很容易。 在TCP / IP中,网络将保持完整,直到源计算机和目标计算机正常运行为止。 TCP是一种面向连接的协议。...OSI模型明确区分了接口,服务和协议TCP / IP在服务,接口和协议之间没有明确的区分点。 OSI是指开放系统互连。 TCP是指传输控制协议。 OSI使用网络层来定义路由标准和协议。...最常见的TCP / IP协议 一些广泛使用的最常见的TCP / IP协议是: TCP: 传输控制协议是一种Internet协议套件,可将消息分解为TCP段,并在接收方重新组装它们。...在TCP / IP中替换协议并不容易。 它与服务,接口和协议没有明确的分离。 摘要: TCP / IP的完整形式是传输控制协议/ Internet协议

2.8K10

浅谈TCP IP协议栈(二)IP地址

上一节大致了解TCP/IP协议栈是个啥东西,依旧是雾里看花的状态,有很多时候学一门新知识时,开头总是很急躁,无从下手,刚学会一点儿,却发现连点皮毛都不算,成就感太低,所以任何时候学习最重要的是要在合适的时间掌握应该掌握的知识...先简单回顾一下,TCP/IP协议栈: 数据链路层->网络层->传输层->应用层 如果为每一层加上一个ID,就像每个人都有身份证那样,那么可以这样标记: 数据链路层(MAC地址) 网络层(IPV4地址,...以下简称IP地址) 传输层、应用层(端口) 这样的标签并不能完全概括这一层所有特征,但是如果掌握这些标示,就相当于是一把钥匙,可以让你快速打开这一层协议的“大门”。...和我们生活关系最密切的IP地址: 作为网络层的标识,IP地址这个概念可以说大家肯定都有耳闻,IP地址是一个32位的二进制数,32位是个什么概念呢?...IP地址。

1.1K10

网络传输模型TCP协议IP地址

需要说明的是在网络传输层TCP可靠而UDP不可靠 传输层说明 说明一: 作为Python开发,咱们都是在应用层的HTTP协议之上进行开发的。...说明三: HTTP协议是基于TCP之上的 因此我们需要了解TCP连接的基本过程。 TCP协议 TCP和UDP的区别: 可靠性:TCP是一种可靠的连接,UDP是不可靠的连接。...报文传输形式:TCP是一种基于数据流传输,UDP基于数据报 传输效率:TCP传输效率低,UDP传输效率高 双工性:TCP是全双工的协议,UDP不是 流量拥塞控制:TCP拥有而UDP无 传输速度:TCP慢...HTTP协议 一次连接传一次数据;Websocket 一次连接传多次数据 ? IP地址与端口 IP地址被用来给Internet上的电脑一个编号。大家日常见到PC上都需要有IP地址,才能正常通信。...我们可以把“个人电脑”比作“一台电话”,那么“IP地址”就相当于“电话号码”,而Internet中的路由器相当于“程控式交换机” 端口号 ?

1.4K20

HTTP 协议 - 简单谈谈 TCP IP (一)

原文连接 blog TCP / IP 基本概念 世界上几乎所有的 HTTP 协议都是由 TCP / IP 协议来承载的。它是互联网相关的各类协议族的总称(通常所说的规则,就是协议)。...从输入的 URL 里我们可以从中获取服务器端的 IP 地址与端口号,建立一条 TCP 连接。建立连接之后,在客户端和服务器端之间交换的报文,不会丢失,受损,或者失序。...分层 TCP / IP 协议族里最重要的特征就是分层,每一层都靠下一层的支持。TCP / IP 按层次分,分为四层:应用层、传输层、网络层、数据链路层。...传输层 传输层提供处于网络连接中的两台计算机之间的数据传输,在传输层有两个不同的协议TCP 和 UDP 协议。...TCP / IP 通讯传输 HTTP 以 HTTP 为例,在进行网络通信时,发送端会从应用层往下走,接收端则会往应用层往上走。 ?

94020

arp属于tcpip协议吗_tcp协议ip协议的区别

1.学习ARP前要了解的内容 建立TCP连接与ARP的关系 应用接受用户提交的数据,触发TCP建立连接,TCP的第一个SYN报文通过connect函数到达IP层,IP层通过查询路由表:   如果目的IP...ARP的位置   OSI模型有七层,TCP在第4层传输层,IP在第3层网络层,而ARP在第2层数据链路层。高层对低层是有强依赖的,所以TCP的建立前要进行ARP的请求和应答。   ...而我们只知道IP地址,这时就需要采用ARP协议IP地址映射为以太网地址。   要注意一点,一般认为ARP协议只使适用于局域网。...字段5表示要映射的协议地址的类型,要对IPv4地址进行映射,此值为0x0800。   字段6和7表示硬件地址长度和协议地址长度,MAC地址占6字节,IP地址占4字节。   ...当地址解析协议被询问一个已知IP地址节点的MAC地址时,先在ARP缓存中查看,若存在,就直接返回与之对应的MAC地址,若不存在,才发送ARP请求向局域网查询。

86110

TCP-IP详解卷1:协议 学习笔记(3) IP:网际协议

参考:TCP-IP详解卷1:协议 IP首部: ? 服务类型TOS字段包括一个3bit的优先权子字段(现在已经被忽略),4bit的TOS子字段和1bit未用位但必须置0。...由于TCP把用户数据分成若干片,因此一般来说不会影响TCP,UDP一般会限制用户数据报长度为512字节,小于576字节,事实上大多数的实现(特别是那些支持网络文件系统NFS的实现)都允许超过8192字节的...首部检验和字段是根据IP首部计算的检验和码,不对首部后面的数据进行计算,ICMP、IGMP、UDP和TCP在他们各自的首部中均含有同时覆盖首部和数据检验和码。...在一般的体制中,IP可以从TCP、UDP、ICMP和IGMP中接收数据报,即在本地生成的数据报,并进行发送,或者从一个网络接口接收数据报(待转发数据报)并进行发送。IP层在内存中有一个路由表。...当数据包来自某个网络接口时,IP首先检查目的IP地址是否为本机的IP地址之一或者IP广播地址。如果确实是这样,数据报就被送到由IP首部协议字段所指定的协议模块进行处理。

90530

浅谈TCP IP协议栈(一)入门知识

/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP...TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。.../IP协议栈内,这些协议和栈有什么关系呢,大家应该都知道栈是一种先进后出的数据结构,那这和TCP/IP协议有什么关系呢?...我们先将HTTP报文压入一个栈中(就好像是在分装报文),然后是IP,不对,我们貌似漏了一个传输层啊,别急别介,HTTP报文在传输层用的是TCP协议,好,我们把TCP压入栈中,再讲IP层也压入栈中,至于链路层的话...因为这个报文是我们构造的一个栈,所以说它的顺序肯定也是栈,因此拿取的顺序就是以太帧头-IP协议-TCP协议-HTTP协议,发现没,最先被封装入的HTTP报文是最后才被拿出来的,这中间的细节如果能全部掌握

60220

【计算机网络】TCP|IP协议

前言 TCP/IP协议是当今互联网世界中最重要的网络协议之一,它是网络通信的基石,为数据在网络中的传输提供了可靠性和有效性。本文将深入探讨TCP/IP协议的重要性、基本原理以及其在网络通信中的作用。...什么是TCP/IP协议TCP/IP(Transmission Control Protocol/Internet Protocol)协议是一组通信协议,用于在计算机网络中进行数据传输和通信。...TCP/IP协议族由多个协议组成,其中两个最重要的协议TCP(Transmission Control Protocol)和IP(Internet Protocol)。...TCP/IP协议的工作原理 TCP/IP协议的工作原理涉及到数据的分段与封装、可靠的数据传输、数据的路由与寻址等方面。...TCP/IP协议的重要性 TCP/IP协议的重要性体现在多个方面,主要包括以下几点: 互联网通信的基础: TCP/IP协议是互联网通信的基础协议

13710

TCP和UDP协议的区别_tcpip是什么意思

在计算机网络里,有两种常见的参考模型即:OSI参考模型和TCP/IP参考模型。由此可见TCP本身是传输层的协议, 而TCP/IP是一种网络参考模型。 1....从编码角度看 TCP UDP的区别如下图: 4.Socket 套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。...通过下图可以看, 实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议: 5....总结区别 协议 层次 描述 TCP 传输层 面向连接的可靠传输协议. TCP/IP 协议栈,或称为一种网络服务模型. 网络层只提供面向无连接的服务.传输层提供TCP和UDP两种连接方式....Sokcet 介于传输层和应用层之间 封装了传输层的TCP/IP的一组接口.为应用层提供使TCP/IP协议栈传输数据.

87130

浅谈TCP IP协议栈(三)路由器简介

读完这个系列的第一篇浅谈TCP/IP协议栈(一)入门知识和第二篇浅谈TCP/IP协议栈(二)IP地址,在第一篇中,可能我对协议栈中这个栈的解释有问题,栈在数据结构中是一种先进后出的常见结构,而在整个TCP.../IP协议中,在封装报文时就相当于是压栈操作,而在报文解析过程中,则是一个出栈的过程,在封装是最先被压进栈中的应用层协议,在解析报文时,也是最后从栈中读取出来并解析的。...好了,言归正传,我们先看一下路由器的主要功能是什么: 路由器的主要功能是路由选择和报文转发,这种功能的实现需用到路由协议。...路由协议是路由器之间维护路由表的规则,用于发现路由,并生成相应的路由表,同时知道报文的转发。路由协议决定路由表中存放那些路由信息。 简单点说,路由器的功能就是两点:路由,转发。

48130

TCP-IP详解卷1:协议 学习笔记(1)

TCP/IP协议族中,网络层协议包括IP协议(网际协议),ICMP协议(Internet互联网控制报文协议),以及IGMP协议(Internet组管理协议) 运输层主要为两台主机上应用程序提供端到端的通信...在TCP/IP协议族中,有两个互不相同的传输协议TCP(传输控制协议)和UDP(用户数据包协议)。 应用层负责处理特定的应用程序熙街。...几乎各种不同的TCP/IP实现都会提供下面这些通用的应用程序:Telnet远程登录,FTP文件传输协议,SMTP简单邮件传送协议,SNMP简单网络管理协议。...由于TCP、UDP、ICMP和IGMP都要向IP传送数据,因此IP必须在生成的IP首部中加入某种表示,以表明数据属于哪一层。为此,IP在首部中存入一个长度为8bit的数值,称作协议域。...使用TCP/IP协议的应用程序通常采用两种应用编程接口:socket和TLI(运输层接口:Transport Layer Interface)。

1.1K30

TCP协议

1、TCP协议的特点 TCP是在不可靠的IP层之上实现的可靠的数据传输协议,它主要解决传输的可靠、有序、无丢失和不重复的问题。...TCPTCP/IP体系中非常复杂的一个协议,主要特点有: 1)TCP是面向连接的传输层协议。 2)每一条TCP连接有两个端点,每一条TCP连接只能是点对点的(一对一)。...5)TCP是面向字节流的,虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。 2、TCP连接管理 TCP是面向连接的协议。...TCP把连接作为最基本的抽象,每一条TCP连接有两个端点,TCP连接的端点不是主机,不是主机的IP地址,不是应用程序,也不是传输层的协议端口。TCP连接的端口叫做套接字(socket)或插口。...端口拼接到IP地址即构成了套接字。 TCP连接的建立采用客户/服务器方式。主动发起建立连接的应用程序叫做客户机(client),而被动等待连接建立的应用进程叫做服务器(server)。

74710

TCP协议

什么是TCP协议 TCP(transmission control protocol)协议全称传输控制协议。它是TCP/IP协议簇中一个非常重要的协议,它工作在IP协议层之上,应用层下面。...TCP服务的特点(为什么需要TCP协议) •使用TCP进行通信,在传输数据前需要建立连接,连接建立成功之后才能输出数据。建立连接的两端分配内核资源,像端口号,socket描述符。...TCP报文段最终是放在IP数据报中发送,而IP数据报到达接收端可能乱序和重复。接收端的必须对收到的TCP报文段重排整理,然后交付给应用层。...TCP协议报文结构 •端口号,分为源端口号和目的端口号,分别占用16bit。源端口号标识报文发送方端口地址,目的端口号标识报文接收方端口地址。...所以IP:PORT可以唯一确定某台机器的某个服务。 •32位序列号,TCP通信包含建立连接、数据传输、释放连接过程中的每个报文都有一个编号。32位序列号表示的正是这个数值。

89911

TCP 协议

TCP是一种面向连接、可靠的传输方式。 超时重传 TCP层每发送一个数据包,都要设置一个定时器,如果接收方在有效时间内没有返回数据接收的确认ACK,发送方则重新发送这个数据包。...TCP三次握手 主机A向主机B发送连接请求 主机B向主机发送ACK确认 主机A建立连接,向主机B发送ACK确认;主机B收到ACK确认,建立连接 为什么要三次握手?...TCP四次挥手 主机A在发送完数据后,向主机B发送关闭连接的请求FIN,之后处于半关闭状态,不再发送任何数据,但可以接收数据 主机B在接收完数据后,处理关闭连接的请求,返回FIN同意关闭。...TCP四次挥手主要是为了保证连接关闭前的数据能够稳定地进行传输。 为什么要四次挥手?

47020

TCP协议

1、TCP协议的特点 TCP是在不可靠的IP层之上实现的可靠的数据传输协议,它主要解决传输的可靠、有序、无丢失和不重复的问题。...TCPTCP/IP体系中非常复杂的一个协议,主要特点有: 1)TCP是面向连接的传输层协议。 2)每一条TCP连接有两个端点,每一条TCP连接只能是点对点的(一对一)。...5)TCP是面向字节流的,虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。 2、TCP连接管理 TCP是面向连接的协议。...TCP把连接作为最基本的抽象,每一条TCP连接有两个端点,TCP连接的端点不是主机,不是主机的IP地址,不是应用程序,也不是传输层的协议端口。TCP连接的端口叫做套接字(socket)或插口。...端口拼接到IP地址即构成了套接字。 TCP连接的建立采用客户/服务器方式。主动发起建立连接的应用程序叫做客户机(client),而被动等待连接建立的应用进程叫做服务器(server)。

50710

TCP-IP详解卷1:协议 学习笔记(2) 链路层

参考:TCP-IP详解卷1:协议 链路层的三个主要目的: (1)为IP模块发送和接收IP数据报 (2)为ARP模块发送ARP请求和接收ARP应答 (3)为RARP发送RARP请求和接收RARP应答...是当今TCP/IP采用的主要的局域网技术。...压缩的SLIP 通信经常是交互式的,在SLIP上有许多小的TCP分组进行交换。为了传送一个字节的数据需要20个字节的IP首部和20个字节的TCP首部,总数超过40个字节。...PPP比SLIP具有以下优点: (1)PPP支持在单根串行线路上运行多种协议,不只是IP协议 (2)每一帧都有循环冗余检验 (3)通信双方可以进行IP地址的动态协商(使用IP网络控制协议) (4)与CSLIP...类似,对TCPIP报文首部进行压缩 (5)链路控制协议可以对多个数据链路选项进行设置。

75650

TCP-IP详解卷1:协议 学习笔记(4) ARP

参考:TCP-IP详解卷1:协议 ARP(地址解析协议)和RARP(逆地址解析协议) ARP为IP地址到对应的硬件地址之间提供动态映射,这个过程是自动完成的,一般应用程序用户或者系统管理员不必关心...TCP/IP有自己的地址:32bit的IP地址。知道主机的IP地址并不能让内核发送一帧数据给主机,内核必须知道目的端的硬件地址才能发送数据。...硬件和协议用来描述ARP分组中的各个字段。例如:一个ARP请求分组询问协议地址(这里是IP地址)对应的硬件地址(这里是以太网地址)。 硬件类型字段表示硬件地址的类型,值为1表示以太网地址。...协议类型字段表示要映射的协议地址类型。它的值为0x0800即表示IP地址。它的值与包含IP数据报的以太网数据帧中的类型字段的值相同。...接下来两个1字节的字段,硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4。

65530

TCP-IP详解卷1:协议 学习笔记(6) Ping

参考:TCP-IP详解卷1:协议 Ping程序的目的是为了测试另一台主机是否可达。该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答。...大多数的TCP/IP实现都在内核中直接支持Ping服务器,这种服务器不是一个用户进程。 ICMP回显请求和回显应答报文: ? 对于其他类型的ICMP查询报文,服务器必须响应标识符合序列号字段。...使得ping程序在发送出去的IP数据报中设置IPRR选项(该IP数据报包含ICMP回显请求报文)。这样每个处理该数据报的路由器都把它的IP地址放入选项字段中。...幸运的是,大多数系统都支持这些选项功能,只是有一些系统不把ICMP请求中的IP清单复制到ICMP应答中。 但是,最大的问题是IP首部中只有有限的空间来存放IP地址。...由于IP首部固定长度为20字节,RR选项用去3个字节,这样只剩下37个字节来存放IP低脂清淡,也就是说只能存放9个IP地址。 IP数据报中的RR选项的一般格式: ?

79820
领券