首页
学习
活动
专区
工具
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协议头做一个分析。 首先来看看在网络中,一帧以太网数据包的格式: ?...在Linux 操作系统中,当我们想发送数据的时候,我们只需要在上层准备好数据,然后提交给内核协议栈 , 内核协议栈自动添加相应的协议头。 下面我们来看看,每一层添加的协议头具体内容。 一....我们在说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 为例,在进行网络通信时,发送端会从应用层往下走,接收端则会往应用层往上走。 ?

94820

Linux网络-IP协议

,但要扩大应用范围,连接不同的局域子网,就需要借助网络层处理各个网络子网的协议,从而进行计算机的网络互连,所以网络层在 TCP/IP 协议体系中叫网际互连层 网络层的主要作用: 屏蔽网络差异,提供透明传输...这个NSAP就是由对应网络所运行的网络层通信协议来定义的,在目前最常见的TCP/IP协议网络中,这个协议就是IP协议,对应的NSAP就是IP地址 在数据链路层中传输的是一个个以许多字节为单位的帧,在每个帧的帧头都有源节点的...无法直接将数据向下交给MAC帧,因此TCP作为传输控制协议需要控制一次向下交付数据不能超过阈值MSS(Maximum Segment Size最大报文段长度) MAC帧的有效载荷最大为MTU,TCP的有效载荷最大为...而TCP/IP协议规定, 每个主机都需要有一个IP地址 实际上, 由于一些特殊的IP地址的存在, 数量远不足43亿,另外IP地址并非是按照主机台数来配置的, 而是每一个网卡都需要配置一个或多个IP地址...此时,需要 NAT 设备根据传输层信息或其他上层协议去区分不同的会话,并且可能要对上层协议的标识进行转换,比如 TCP 或 UDP 端口号。

3.9K20

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请求向局域网查询。

88110

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首部协议字段所指定的协议模块进行处理。

91730

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

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

61620

Linux】网络层协议IP

其实就是传输控制协议TCP来解决 3....所以我们称,TCP提供数据跨网络传输的策略,而IP提供数据跨网络传输的能力,两者合在一起就一定能够保证数据包可靠的跨网络从主机A发送到主机B,这也就是为什么很多人叫TCP/IP协议的原因,因为这两个协议可以可靠的保证数据包跨网络送到目标主机...8位协议表示网络层的上层的协议类型,ICMP协议是0000 0001,TCP是0000 0110,UDP是0001 0001,通过8位协议就可以将有效载荷向上分用,交付给上层协议了。 2....所以,区分UDP面向数据报和TCP面向字节流,可以从协议头部字段能否得出有效载荷大小 和 通信socket接口2个方面来理解。...所以IP协议并不保证可靠性,至于数据在跨网络传输过程中出现不可靠的问题(比如丢包,数据段乱序,比特位翻转,数据段重复发送),IP协议并不关心,这些是TCP要解决的事情,比如提供数据段的排序+去重,超时重传

23630

【计算机网络】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协议是互联网通信的基础协议

18210

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协议栈传输数据.

89130

Linux系统之IPTCP封包格式

一、IP封包格式说明 前言 IP 协议IP 报文头封装传输层报文,IP 报文头包含了如下的信息:这个报文从哪个传输层协议过来,它准备被发送到哪台机器,它从哪儿来以及一些其他有用的信息....TCP 就是这样的协议,但是它建立在 IP 基础之上的。IP 不是面向连接 的原因有很多种,其中一个原因就是它不会为很多应用增加不必要的开销。...二、TCP封包格式 1、TCP作用 TCP 协议位于 IP 协议层之上,TCP 是一个有状态的协议,并且通过内部机 制能够确认报文是否被对方正确的接收。...五、总结 TCP协议和UDP协议的区别 1、TCP协议面向连接,UDP协议面向非连接 2、CP协议传输速度慢,UDP协议传输速度快 3、TCP协议保证数据顺序,UDP协议不保证 4、TCP协议保证数据正确性...,UDP协议可能丢包 5、TCP协议对系统资源要求多,UDP协议要求少

4.1K40

Linux】传输层协议:UDP和TCP

在网络通信中,通信的本质实际就是两台主机上的进程在网络环境中进行通信,也就是数据的传输,而我们总说TCP/IP协议栈,这两个协议分别解决了两个重要的问题,即一台主机如何在网络环境中标定自己的唯一性,一台主机中的某个进程如何在主机内部标定自己的唯一性...,实际就是通过网络层协议IP地址和传输层协议端口号port来解决这两个问题的。...1.2 网络协议栈和linux系统的联系(以port为键值的开散列哈希表,哈希桶存储port对应的PCB的地址) 1....(Maximum Transmission Unit)是数据链路层最大的传输单元,减去的40字节包括TCP头部20字节和IP头部20字节,假设TCPIP头部都不包含选项字段,并且这也是一般情况。...Linux内核协议栈其实为管理一个TCP连接,使用了两个队列,一个是半连接队列,一个是全连接队列,当全连接队列满了的时候,服务器无法再继续受理新到来的连接,只会维持一小段时间的半连接。

36830

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

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

48830

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.2K30

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)。

75210

TCP协议

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

92711

TCP 协议

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

48120
领券