TCP/IP详解(整理)
1.概述
路由器是在网络层进行联通,而网桥是在链路层联通不同的网络。
IP层用ICMP来与其他主机或路由器交换错误报文和其他的重要信息。应用程序也可以访问ICMP,两个诊断工具:Ping和Traceroute
IGMP是组管理协议,用来把一个UDP数据报多播到多个主机;ICMP和IGMP的消息都是通过IP数据报来封装的
IP的地址分类:5类:
A (0 网络号7bit 主机号24bit);0.0.0.0 - 127.255.255.255
B(10 网络号14bit 主机号16bit);128.0.0.0 - 191.255.255.255
D(1110 多播组号28位);
还可以分为3类IP地址:单播、广播和组播地址
以太网数据帧长度 46-1500字节
SLIP:串行线路IP 报文的封装格式是以c0开头和结尾的;而PPP协议是以7E来标志的
环回接口:127.0.0.1 localhost;会将IP地址是环回地址或本地址的数据放入IP输入队列中,另外广播/多播地址的数据也会复制一份给环回接口
以太网的MTU是1500字节,不同网络的帧的MTU不同,IP层会依据MTU给数据进行分片。如果数据要经过不同的网络,那么路劲中最小的MTU
TTL(time-to-live)生存时间字段设置了数据报可以经过的最多路由器数目,通常为32或64
IP是可以从TCP UDP ICMP IGMP接收数据报的
ip地址中如果没有指定主机号,则指定网络上的所有主机
路由表搜索的时候先匹配目的ip,不行则匹配目的网络号表目,还是不行则匹配默认表目,最后选择主机不可达不能传送。
为每个网络指定1个路由器,缩小规模
主机号可能会分一部分用来划分子网。例如B类地址16bit的主机号,用8bit来分子网,可以有254个子网,每个子网254个主机。子网对外部透明,但是对于内部的路由器是不透明的
给定IP地址和子网掩码,就知道了是不是在同一个网络,同一个子网了。AB类地址一般都会子网划分
ifconfig和netstat命令查找网络接口相关的信息,netstat还可以查看路由表信息
IP主要有地址不够用,路由表规模以后可能会比较大这些问题
ICMP可以有查询报文,还可以有差错报文,不可达时候发送,报文必须包括生成该差错报文的数据报IP首部,还必须包括后面的前8个字节,这里面包含了TCP或UDP中的源和目的端口号
ping发送一份ICMP回显请求报文给主机,等待返回ICMP回显应答。是对两个TCP/IP系统连通性进行测试的基本工具,集成在了内核里。不经过传输层
traceroute程序能记录路由的路径,通过发送TTL为1的UDP数据报,然后每次将TTL加1,,路由器会丢弃数据包返回ICMP超时报文,最终主机会产生一个ICMP端口不可达的报文
动态选路:内部网关协议IGP(选路信息协议 RIP,最短路径优先 OSPF),外部网关协议 EGP(边界网关协议 BFP)
UDP具有伪首部,是12字节,自己的首部是8字节,UDP和TCP都加入伪首部,是为了计算校验。UDP的校验是对整个数据的校验,端到端。
IP层的分片,每个接口可能会是不同的网络,MTU可能不同。数据报可能在中途进行分片,每个片具有相同的标识flag,还有一个标识字段用来表示是否还有更多的片。如果某个分片丢失,是需要重传整个数据报的。传输层的头部信息只出现在第一个分片中。如果IP数据报需要被分片而标识中设置为不分片DF,那么会发送ICMP不可达差错报文。
UDP与ARP的交互:当数据报被分片后,如果需要arp寻址,则有几个分片就会发送几个arp请求,当接收第一个arp请求后,只有最后一个报文会被发送到特定的主机。
广播和多播只应用于UDP,前提是不面向连接。大多数的网卡都能接受目的地址为多播地址或某些子网多播地址的帧。
广播增加了对于广播数据不感兴趣主机的处理负荷。因为这些数据还是会上传到UDP层才被丢弃。多播减少了部分负荷,主机可加入一个或多个多播组。
广播地址也分为全网和子网广播地址,主机号必须全为1.
多播组的地址其实是D类地址,多播组id有28位。不限制组内主机的个数。多播地址的以太网地址首字节必须是01,ip地址的低位23bit映射到以太网地址
组管理协议IGMP就是让物理网络上的所有系统知道主机当前所在的多播组
tcp首部20字节中前4字节分别是两个端口号;然后是4字节的序号和4字节的确认序号,之后4字节中包含6个特殊位和2字节的窗口大小(最大为65535字节);
URG紧急指针,ACK,PSH接收方应该尽快将报文段发送给应用层,RST重新连接,SYN同步发起连接,FIN
MSS最大段长度,一般是1024,有些可以协商
四次挥手是因为tcp是全双工的,每个方向需要单独来关闭
time wait有2MSL等待时间,报文段最大生存时间,是为了能接收可能的再次FIN,
半打开连接是因为一方可能突然掉电关机,然后重启后,启动新的连接,之前的半连接就一直在。TCP处理原则是接收方以复位做为应答
对于同时建立连接,双方只建立一条连接,同时关闭也是差不多的,没有太多区别,都是允许的
呼入连接请求队列:该队列中的连接已经握手完成但是还没有被应用层所接受,队列的最大长度称为积压值
使用nagle算法减少小报文的数目
四种定时器:重传定时器、坚持、保活和2MSL定时器
拥塞窗口cwnd和慢启动门限ssthresh,发送方能发送的大小为cwnd和接收方通告的窗口的最小值
慢启动(其实开始是指数增长cwnd,当到了门限后加1增长)和拥塞避免(快恢复)算法
TCP/IP详解(整理)的更多相关文章
- 《TCP/IP详解 卷1:协议》系列分享专栏
<TCP/IP详解卷1:协议>是一本详细的TCP/IP协议指南,计算机网络历久不衰的经典著作之一. 作者理论联系实际,使读者可以轻松掌握TCP/IP的知识.阅读对象为计算机专业学生.教师以 ...
- 《TCP/IP详解 卷1:协议》第3章 IP:网际协议
3.1 引言 IP是TCP/IP协议族中最为核心的协议.所有的TCP.UDP.ICMP及IGMP数据都以IP数据报格式传输(见图1-4).许多刚开始接触TCP/IP的人对IP提供不可靠.无连接的数据报 ...
- 《TCP/IP详解 卷1:协议》第4章 ARP:地址解析协议
4.1 引言 本章我们要讨论的问题是只对TCP/IP协议簇有意义的IP地址.数据链路如以太网或令牌环网都有自己的寻址机制(常常为48 bit地址),这是使用数据链路的任何网络层都必须遵从的.一个网络如 ...
- TCP/IP详解学习笔记
TCP/IP详解学习笔记(1)-基本概念 TCP/IP详解学习笔记(2)-数据链路层 TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议 TCP/IP详解学习笔记(4)-ICMP协议, ...
- TCP/IP详解 (转)
TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中 ...
- 『TCP/IP详解——卷一:协议』读书笔记——10
2013-08-22 22:57:17 3.8 ifconfig命令 这个命令在Linux系统下可以通过下面的指令阅读说明文档: ifconfig 由于书中作者用的系统比较早的某Unix系统,所以我的 ...
- 《TCP/IP详解卷1:协议》第1章 概述-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- TCP/IP详解--发送ACK和RST的场景
在有以下几种情景,TCP会把ack包发出去: 1.收到1个包,启动200ms定时器,等到200ms的定时器到点了(第二个包没来),于是对这个包的确认ack被发送.这叫做“延迟发送”: 2.收到1个包, ...
- TCP/IP详解--连接状态变迁图CLOSE_WAIT
终止一个连接要经过4次握手.这由TCP的半关闭(half-close)造成的.既然一个TCP连接是全双工(即数据在两个方向上能同时传递,可理解为两个方向相反的独立通道),因此每个方向必须单独地进行关闭 ...
- TCP IP详解(转)
大学学习网络基础的时候老师讲过,网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 网络七层协议简称OSI.TCP/IP刨除了物理层,并把上三层(会话层.表示层和应用层)统称 ...
随机推荐
- AGC019
质量果然挺高的. A 贪心. ll Q,H,S,D,N; int main() { cin>>Q>>H>>S>>D>>N; H=min(H, ...
- BZOJ3112 [Zjoi2013]防守战线 【单纯形】
题目链接 BZOJ3112 题解 同志愿者招募 费用流神题 单纯形裸题 \(BZOJ\)可过 洛谷被卡.. #include<algorithm> #include<iostream ...
- 【bzoj1483】 HNOI2009—梦幻布丁
http://www.lydsy.com/JudgeOnline/problem.php?id=1483 (题目链接) 题意 $n$个布丁摆成一行,进行$m$次操作.每次将某个颜色的布丁全部变成另一种 ...
- bzoj2300【HAOI2011】防线修建
题目描述 近来A国和B国的矛盾激化,为了预防不测,A国准备修建一条长长的防线,当然修建防线的话,肯定要把需要保护的城市修在防线内部了.可是A国上层现在还犹豫不决,到底该把哪些城市作为保护对象呢?又由于 ...
- noip2017考前整理(未完)
快考试了,把我以前写过的题回顾一下.Noip2007 树网的核:floyd,推出性质,暴力.Noip2008 笨小猴:模拟Noip2008 火柴棒等式:枚举Noip2008 传纸条:棋盘dpNoip2 ...
- P2015 二叉苹果树
P2015 二叉苹果树 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点) 这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1. 我们用一根树枝两端连接 ...
- Shell记录-Shell脚本基础(五)
Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...
- 深入剖析linq的联接
内联接 代码如下 from a in new List<string[]>{ ]{"张三","男"}, ]{"李四"," ...
- [Baltic2009]Radio Transmission
bzoj 1355: [Baltic2009]Radio Transmission http://www.lydsy.com/JudgeOnline/problem.php?id=1355 Time ...
- Ubuntu安装Nginx 问题以及解决办法
Error1 the HTTP rewrite module requires the PCRE library sudo apt-get update sudo apt-get install li ...