tcp/ip 卷一 读书笔记(1)tcp/ip 概述
TCP/IP协议概述
术语
广域网 WAN
局域网 LAN
TCP/IP四层网络模型
TCP/IP通常被认为是一个四层协议系统
- 网络接口层 包括arp,rarp协议,包括操作系统中的网卡驱动程序和对应的网络接口卡,一起处理数据在电缆之间传输的细节,这一层是同一个链路网络内,不同接口之间通过mac地址通信。arp协议是根据ip地址,请求对应的mac地址,rarp协议是根据mac地址,请求ip地址(可以用来做开机获取ip地址,实际现在已经不这么做了),二层的典型设备是交换机,交换机内有一张mac地址和对应的端口规则的表,每当收到一个包,如果是arp广播包,那么就将这个包从这个交换机的所有接口(这里不考虑vlan先),如果不是广播包,交换机根据目的mac地址来匹配应该将数据转发往哪个端口,然后从对应的端口扔出去。网桥是低端版的交换机,也有类似的功能,可以在链路层上对网络进行互联,linux bridge就是虚拟的网桥。交换机和网桥隔离冲突域。
- 网络层 包括IP,ICMP,IGMP协议,ip地址和路由设备,都是网络层的概念,链路层的通信,只能在一个或者多个交换机连接的网络内,其实算是同一个网络,里面的机器mac地址不能冲突,一个arp包,所有的机器都能收到,所以我们即使不考虑代价的问题,我们也不会把全世界所有的机器都直接接到,一个这样的网络内(wan),我们需要会把自己的网络,链路层上同外界的网络隔离,通过路由设备和他们通信,这样好处多多,后面再分析。路由设备是网络层的设备,它存储ip地址和对应的接口的对应关系,通过路由选择协议,根据目的ip地址选择下一跳的ip地址(也会是个路由设备或者虚拟路由设备或者目的地址),通过arp协议获取到下一跳的mac地址,修改数据包,将目的mac地址设置成这个地址,扔给链路层,由链路层送出。路由器隔离广播域。(笔记五中更详细的介绍了通信过程,以及为什么路由器隔离广播域)
- 传输层 包括tcp协议,udp协议。网络层的传输主要是一个ip+端口号,将数据发送给另一个ip+端口号,这个端口号,是用来区分不同的应用程序,告诉操作系统,这个包是发给那个程序的,该扔到哪个缓存里面,由哪个程序负责读出。udp是不可靠的传输,不理会传输的过程中是否发生丢包,通常主机内的通讯都使用udp,主机间的通信,如果使用udp,需要自己做好传输可靠性的检验。tcp的设计思想是尽可能可靠的传输,保证数据已定能传输到,尽量避免拥堵,所以tcp设计不是为了占据更多的带宽而设计的,多个链接可以提高传输速度,tcp的设计在网络速度越来越快的情况下,暴漏出很多缺陷,后面再谈。
- 应用层,各种应用工作的层次
还可以看OSI七层网络模型
互联网的地址
网络地址分类,IPV4的情况,IP地址分为A,B,C,D,E五类,各自所处的范围如下:
类别 | 格式 | 最大网络数 | IP地址范围 | 私有地址范围 |
---|---|---|---|---|
A | 0[7b netNum][24b hostNumber] | 126(2^7-2) | 0.0.0.0-127.255.255.255 | 10.0.0.0-10.255.255.255 |
B | 10[14b netNum][16b hostNumber] | 16382(2^14-2) | 128.0.0.0--191.255.255.255 | 172.16.0.0-172.31.255.255 |
C | 110[22b netNum][8b hostNumber] | 2097150(2^21-2) | 192.0.0.0-223.255.255.255 | 192.168.0.0-192.168.255.255 |
D | 1110[28b multcast number] | N/A | 224.0.0.0-239.255.255.255 | N/A |
E | 11110[27b reserved number] | N/A | 240.0.0.0-255.255.255.255 | N/A |
最大网络数-2是因为全0和全1的网络号(netnum)是非法的。
D类地址是多播地址,E类是预留地址。
私有地址是非Internet网络使用的地址,公网上的路由器不会转发目的地址是私有地址的数据
无类别域间路由
A,B,C等分类地址的划分是最初的设计,后来人们遇到这样的问题
In the early 1990s, after the adoption of subnet addressing to ease one form of growing pains, the Internet started facing a serious set of scaling problems. Three particular issues were considered so important as to require immediate attention:
- By 1994, over half of all class B addresses had already been allocated. It was expected that the class B address space would be exhausted by about 1995.
- The 32-bit IPv4 address was thought to be inadequate to handle the size of the Internet anticipated by the early 2000s.
- The number of entries in the global routing table (one per network number), about 65,000 in 1995, was growing. As more and more class A, B, and C routing entries appeared, routing performance would suffer.
为了解决这些问题,现在我们引入了无类别域间路由的概念,使用cidr的方式,用网络地址加上掩码来表示一个网络,如
172.16.40.128/25,10.0.0.25/32. cidr的本质在于,使用掩码分割网络,表示网络的范围,而不是根据网络类型。cidr的好处在于,提高网络地址的利用率,分配一个网络,可以只分配,2个,4个,8个,16个...地址,而不是256,255256,256256*256。
cidr技术减缓了ipv4地址耗尽的趋势,类似的还有nat技术,nat技术工作在路由设备上,传输层,可以让很多用户共用一个公网ip地址,而不是所有人都接入到Internet中,也起到减缓ipv4地址消耗的作用。
关于cidr和nat,可以看:协议森林14 逆袭 (CIDR与NAT)
cidr同时还能够支持路由汇聚的功能,减少互联网上的路由表项的数目,以解决引用中提到的第三个问题,可以看 cidr_维基百科
各种数据报的格式
tcp的数据包:
link header | ip Header | tcp Header | data | link trailer |
---|---|---|---|---|
14bit | 20bit | 20bit | 不固定 | 4bit |
udp的数据包:
link header | ip Header | tcp Header | data | link trailer |
---|---|---|---|---|
14bit | 20bit | 8bit | 不固定 | 4bit |
icmp和igmp数据包,主要在ip header中的协议值区分:
link header | ip Header | data | link trailer |
---|---|---|---|
14bit | 20bit | 不固定 | 4bit |
arp和rarp数据包,主要在以太网首部中的的帧类型区分:
link header | data | link trailer |
---|---|---|
14bit | 不固定 | 4bit |
各种去掉link header和link trailer之外的数据,最大有一个长度,超过这个长度的数据交给链路层,链路层会不处理这个数据,会直接丢弃。
这个最大长度我们称为mtu,ip层交给link层的数据长度一定要小于等于MTU值。
在tcp中,还有mss值得概念,指上图tcp数据包中的data的大小,后面再谈。
参考:
TCP/IP详解 卷一
TCP/IP详解 卷二
等
tcp/ip 卷一 读书笔记(1)tcp/ip 概述的更多相关文章
- tcp/ip 卷一 读书笔记(5)arp和rarp 同网段和不同网段之间的通信过程
arp和rarp 同网段和不同网段之间的通信过程 IPv6中已经没有arp rarp协议,所以这里都是IPv4. 链路层使用以太网地址来确定目的地址,应用则常使用ip地址通信 arp协议是指从ip地址 ...
- tcp/ip 卷一 读书笔记(2)物理层和链路层网络
物理层和链路层网络 术语 链路 是一对相邻结点间的物理线路,中间没有任何其他的交换结点. 数据链路 除了物理线路外,还必须有通信协议来控制这些数据的传输. 帧 数据链路层的协议数据单元(PDU) 串行 ...
- tcp/ip 卷一 读书笔记(3)为什么既要有IP地址又要有MAC地址
网络层 首先明确一点,并不是所有的网络之间传输数据都需要mac地址和ip地址,比如说点对点线路之间的通信就没有MAC地址,网络层使用ipx协议时就没有ip地址,但是在当前的主流网络中,我们都使用ip地 ...
- 《图解tcp/ip》读书笔记(二)
<图解tcp/ip>读书笔记(二) 本周主要阅读的是本书的第三章--数据链路. 当然了,从某些角度讲,我认为这一章就是计算机网络的最基本的内容之一.整章讲述了数据链路层的作用和相关技术,主 ...
- 《图解tcp/ip》读书笔记(一)
我先讲三句话: 一."万物互联的时代到了."我们生活在这样一个互联网急速发展的时代,也许很快就会发现,你能接触到的一切都可以连接到互联网了,电脑.手机这 ...
- 《图解TCP/IP》读书笔记
一.国际惯例:书托 这是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TCP/IP的基本知识.掌握TCP/IP的基本技能. 书中讲解了网络基础知识.TCP/IP基础知识.数据链路.IP协议.IP协 ...
- 《图解TCP/IP》读书笔记(转)
reference: https://www.cnblogs.com/edisonchou/p/5987827.html 一.国际惯例:书托 这是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TC ...
- C#基础知识之图解TCP IP》读书笔记
一.网络基础知识 1. 计算机使用模式的演变 2.协议 协议就是计算机与计算机之间通过网络实现通信事先达成的一种“约定”.这种“约定”使那些由不同厂商的设备.不同的CPU以及不同的操作系统组成的计算机 ...
- TCP/IP详解 读书笔记:TCP:传输控制协议
TCP的服务 TCP为应用层提供一种面向连接的.可靠的字节流服务. 一个TCP连接中,仅有两方进行彼此通信,所以广播和多播不能用于TCP. TCP通过以下方式提供可靠性: 应用数据被切割为TCP认为最 ...
随机推荐
- 添加FTP用户(vsftpd)
1.环境:ftp为vsftp. 用户名为test.默认路径为/home/test 2.新建用户(当前是root用户) 运行命令:"useradd -d /home/test test&quo ...
- 在 ios 中的日期格式
var d="2017-1-1" ; new Date(d) //生成一个日期对象 这样写在 Android 中没有问题,但是在 ios 中,d 的格式不对,应该设为 2017- ...
- 安装node.js和npm
转载自https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/0014345014184 ...
- How to get started with GIT and work with GIT Remote Repo
https://www.ntu.edu.sg/home/ehchua/programming/howto/Git_HowTo.html#zz-7. 1. Introduction GIT is a ...
- Django----模板层
一.模板层: python的模板:HTML代码+模板语法 模版包括在使用时会被值替换掉的 变量,和控制模版逻辑的 标签. import datetime t=dateti ...
- 这可能是我觉得最折腾的C++环境配置(编码+调试)--mac+eclipse
本着造福大众的心态,万一可能有人喜欢这种环境开发呢对吧~~折腾了一天,又是谷歌又是百度,讲真遇到报错问题搜出的资料挺少的,看来用这类环境开发C++的人不多,毕竟谁没事干放着xcode,vscode不用 ...
- spring之构造注入
第一种:通过构造name和value属性(不常用) <!-- userAction --> <bean id="userAction" class="c ...
- CentOS6.9编译安装nginx1.4.7
1.系统安装开发包组和zlib-devel,关闭iptables [root@bogon ~]# yum groupinstall -y "Development Tools" [ ...
- UOJ 241. 【UR #16】破坏发射台 [矩阵乘法]
UOJ 241. [UR #16]破坏发射台 题意:长度为 n 的环,每个点染色,有 m 种颜色,要求相邻相对不能同色,求方案数.(定义两个点相对为去掉这两个点后环能被分成相同大小的两段) 只想到一个 ...
- BZOJ 2006: [NOI2010]超级钢琴 [ST表+堆 | 主席树]
题意: 一个序列,求k个不相同的长度属于\([L,R]\)的区间使得和最大 前缀和,对于每个r找最小的a[l] 然后我yy了一个可持久化线段树做法...也许会T 实际上主席树就可以了,区间k小值 然后 ...