首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

91830

TCP协议详解

TCP服务的特点 传输层协议主要有两个: TCP协议和UDP协议TCP协议相对于UDP协议的特点是:面向连接、字节流和可靠传输。 使用TCP协议通信的双方必须先建立连接,然后才能开始数据的读写。...TCP协议的这种连接是一对一的,所以基于广播和多播(目标是多个主机地址)的应用程序不能使用TCP服务。而无连接协议UDP则非常适合于广播和多播。...最后,因为TCP报文段最终是以IP数据报发送的,而IP数据报到达接收端可能乱序、重复,所以TCP协议还会对接收到的TCP报文段重排、整理,再交付给应用层。.UDP协议则和IP协议一样,提供不可靠服务。...TCP模块通常将MSS设置为(MTU-40) 字节(减掉的这40字节包括20字节的TCP头部和20字节的IP头部)。...这样携带TCP报文段的IP数据报的长度就不会超过MTU (假设TCP头部和IP头部都不包含选项字段,并且这也是一般情况),从而避免本机发生IP分片。

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

浅谈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 协议详解

TCP 协议详解 在笔者以前的工程中,用过 socket 套接字实现过多进程通信的程序,也用过 Node.js + socket.io + express 构建过 B/S 软件架构,但对最基础的 TCP...参考网址: 《TCP 协议详解》 《简析TCP的三次握手与四次分手》 《TCP协议中的三次握手和四次挥手(图解)》 《TCP通信的三次握手和四次撒手的详细流程(顿悟) 》 《TCP建立连接的三次握手...因而他们需要定义一些共通的东西来进行交流,TCP / IP 就是为此而生。 TCP / IP 不是一个协议,而是一个协议族的统称。...TCP / IP 协议按照层次由上到下,层层包装。...三次握手详解 TCP 是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在 TCP / IP 协议中,TCP 协议提供可靠的连接服务,连接是通过三次握手进行初始化的。

1.7K50

TCP协议详解

TCP是靠谱的协议,但不代表它所处的网络环境很好。 IP层来看,如果网络状况的确差,无任何可靠性保证,即使是IP的上一层TCP也无能为力,能做的只是更努力,不断重传,通过各种算法尽量保证。...即对于TCPIP层你丢不丢包,我管不着,但在我TCP层,会尽力保证可靠性。...TCP协议专门设计了几个状态来处理这些问题。...TCP协议里面并没有对这个状态的处理,但Linux有,可以调整tcp_fin_timeout参数,设置一个超时时间。...因为TCP报文基于是IP协议的,而IP头中有一个TTL域,是IP数据报可以经过的最大路由数,每经过一个处理他的路由器此值就减1,当此值为0则数据报将被丢弃,同时发送ICMP报文通知源主机。

33510

TCP协议详解

而这些基石中很重要的一环就是tcp协议。翻看一下“三次握手”和“四次挥手”,本以为这就是tcp了,其实不然。它仅仅解决了连接和关闭的问题,传输的问题才是tcp协议更重要,更难,更复杂的问题。...参考之前的文章http协议 TCP数据被封装在IP数据报中 3.2 首部格式 ?...tcp首部数据通常包含20个字节(不包括任选字段) 第1-2两个字节:源端口号 第3-4两个字节:目的端口号 源端口号+ip首部中的源ip地址+目的端口号+ip首部中的目的ip地址,唯一的确定了一个tcp...这两个参数可以解决问题,但是它违背了tcp协议,是有风险的。...保活定时器 2.1 保活定时器存在的意义 当tcp上没有数据传输时,服务器如何检测到客户端是否还存活 参考 《tcp/ip详解 卷1:协议》 coolshell.cn/articles/11… coolshell.cn

92032

TCP协议详解

TCP是靠谱的协议,但不代表它所处的网络环境很好。 IP层来看,如果网络状况的确差,无任何可靠性保证,即使是IP的上一层TCP也无能为力,能做的只是更努力,不断重传,通过各种算法尽量保证。...即对于TCPIP层你丢不丢包,我管不着,但在我TCP层,会尽力保证可靠性。...TCP协议专门设计了几个状态来处理这些问题。...TCP协议里面并没有对这个状态的处理,但Linux有,可以调整tcp_fin_timeout参数,设置一个超时时间。...因为TCP报文基于是IP协议的,而IP头中有一个TTL域,是IP数据报可以经过的最大路由数,每经过一个处理他的路由器此值就减1,当此值为0则数据报将被丢弃,同时发送ICMP报文通知源主机。

49630

TCP、UDP、IP 协议分析

互连网早期的时候,主机间的互连使用的是NCP协议。这种协议本身有很多缺陷,如:不能互连不同的主机,不能互连不同的操作系统,没有纠错功能。为了改善这种缺点,大牛弄出了TCP/IP协议。...现在几乎所有的操作系统都实现了TCP/IP协议栈。 TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议,如下图 ? 所谓的协议就是双方进行数据传输的一种格式。...整个网络中使用的协议有很多,所幸的是每一种协议都有RFC文档。在这里只对IPTCP、UDP协议头做一个分析。 首先来看看在网络中,一帧以太网数据包的格式: ?...(9)TCP选项 是可选的,在后面抓包的时候,我们在看看它 2.重点详解 (1)三次握手建立连接 a.请求端(通常称为客户)发送一个SYN段指明客户打算连接的服务器的端口,以及初始序号(ISN,在这个例子中为...我们在说TCP的时候,说到MSS很多人不能区分它们。通过下面的图,我想就可以完全区分它们了。 ? 个人觉的如果通过TCP协议传输数据,到IP层的时候,可定不需要分片了。

2.5K31

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

参考自:TCP-IP详解卷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的数值,称作协议域。

1.2K30

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

Ip协议详解

参考 Ip协议Tcp/Ip协议中的核心协议,位于网络层,上层的tcp、udp、icmp等协议都要依靠它。 Ip协议提供了一种尽力交付、无连接的服务。不保证Ip数据包一定能到达目的地。...8位的协议字段用来标示ip数据报所承载的数据报类型,17为udp,6为tcp,4表示ipv4. 16位头部校验和字段仅计算ipv4的头部。所以内部的tcp等数据报需要自己记录本身的校验和。...ip协议根据相应的转发表,来转发接收到的数据。一个转发表至少包含以下4部分: 掩码,子网掩码,用来与ip地址执行与操作。...下一跳,根据对比目的网络地址,决定数据报的下一跳 *接口,由ip层使用的标识符。 备注 Ip协议数据报中的目的地址在经过每一跳时都不改变,但是链路层的目的地址每跳都会发生改变。...参考 《TCP/IP详解(卷1:协议)》第二版 ip协议详解 欢迎与我分享你的看法。 转载请注明出处:http://taowusheng.cn/

68030

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

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

1.1K10

IP协议详解

IP服务的特点 IP协议TCP/IP协议得动力,它为上层协议提供无状态,无连接,不可靠得服务。...接收端的IP模块只要收到了完整的IP数据报(如果是IP分片的话,IP 模块将先执行重组),就将其数据部分(TCP报文段、UDP数据报或者1CMP报文),上交给上层协议。...那么从上层协议来看,这些数据就可能是乱序的、重复的。面向连接的协议,比如TCP协议,则能够自己处理乱序的、重复的报文段,它递交给上层协议的内容绝对是有序的、正确的。...因此,使用IP服务的上层协议(比如TCP协议)需要自己实现数据确认、超时重传等机制以达到可靠传输的目的。 IPv4头部结构 ? 4位版本号(version) 指定IP协议的版本。...8位协议( protocol)用来区分上层协议。/etc/protocols 文件定义了所有上层协议对应的protocol字段的数值。其中,ICMP是1, TCP是6,UDP是17。

82510

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)链路控制协议可以对多个数据链路选项进行设置。

77750

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。

66130

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选项的一般格式: ?

81720

网络层协议IP协议详解

简介: IP协议属于网络层协议,所有的TCP, UDP, ICMP, IGMP数据都通过IP数据报传输。IP提供了一种不可靠,无连接的数据包交付服务。依赖其他层的协议进行差错控制。...IP通信双方都不长久地维持对方的任何信息。这样上层协议每次发送数据的时候,都必须明确指定对方的IP地址。 ipv4数据报 ?...1.版本号:占四位,就是IP协议的版本,通信双方的IP协议必须要达到一致,IPv4的版本就是4. 2.首部长度:占四位,因为长度为四比特,所以首部长度的最大值为1111,15,又因为首部长度代表的单位长度为...上层协议(如TCP/UDP)的头部信息 13.到了可变部分IPv4的头部基本上就已经讲完了,增加头部的可变选项实际上就是增加了数据报的功能,可变选项在实际上是很少用到的。...IP广播或者组播地址),则交给协议字段或者IPv6头部的下一个头部字段指定的协议模块处理。

2K40

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

参考:TCP-IP详解卷1:协议 RARP RARP分组的格式与ARP分组基本一致,它们之间的主要差别是RARP请求或应答的帧类型为0x8035,RARP请求的操作码为3,应答操作码为4。...RARP协议是许多无盘系统在引导时用来获取IP地址的。RARP分组格式基本上与RAP分组一致,一个RARP请求在网络上进行广播,在分组中标明发送端的硬件地址,以请求相应IP地址的响应。...ICMP Internet控制报文协议 ICMP经常被认为是IP层的一个组成部分。传递差错报文以及其他需要注意的信息。ICMP报文通常被IP层或更高层协议(TCP或UDP)使用。...这样,接收ICMP差错报文的模块就会把它与某个特定协议(根据IP数据报首部中的协议字段来判断)和用户进程(根据包含在IP数据报前8个字节中的TCP或UDP报文首部中的TCP或UDP端口号来判断)联系起来...导致差错的数据报中的IP首部要被送回的原因是IP首部中包含了协议字段,使得ICMP可以知道如何解释后面的8个字节。 ? 有16种不同类型的ICMP不可达报文,代码分别从0到15。

69310
领券