IP的分类
1. A类 : 0xxx xxxx 范围0-127
2. B类 : 10xx xxxx 范围128-191
3. C类 : 110x xxxx 范围192-223
4. D类 : 1110 xxxx 范围224-239
5. E类 : 1111 xxxx 范围240-255
特殊IP地址
- 127.0.0.1 - 127.255.255.254
- 255.255.255.255 ----- 受限广播地址----- 只能作为目标ip地址
- 主机位全1 ------ 直接广播地址 ----- 只能作为目标ip地址
- 主机位全0 ------ 代表的是一个网段,网络号
- 0.0.0.0 ------ 1. 可以代表没有地址; 2. 可以代表所有地址
- 169.254.0.0/16 ------ 自动私有地址
A,B,C三类位单播地址 -----既可以作为源ID,也可以作为目标IP使用
D ------- 组播地址
E ------- 保留地址
单播 -------- 一对一
单播定义 :单播(Unicast)是在一个单个的发送者和一个接受者之间通过网络进行的通信。
单播的优点
- 服务器及时响应客户机的请求
- 服务器针对每个客户不同的请求发送不同的数据,容易实现个性化服务。
单播的缺点
- 服务器针对每个客户机发送数据流,服务器流量=客户机数量×客户机流量;在客户数量大、每个客户机流量大的流媒体应用中服务器无法支持如此庞大的数据流。
- 现有的网络带宽是金字塔结构,城际省际主干带宽仅仅相当于其所有用户带宽之和的5%。如果全部使用单播协议,将造成网络主干不堪重负。
组播 --------- 一对多(同一个组播域)
组播定义
主机之间“一对一组”的通讯模式,也就是加入了同一个组的主机可以接受到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。这样既能一次将数据传输给多个有需要(加入组)的主机,又能保证不影响其他不需要(未加入组)的主机的其他通讯。
广播 ---------- 一对所有 (同一个广播域)
广播定义
主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号,但只将一个频道的信号还原成画面。在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机。
----- 只能作为目标ip地址
VLSM ------ 可变长子网掩码 -------- 子网划分
192.168.1.0/24
192.168.1.0 0000 0000 /25 192.168.1.0/25 1.1-1.126
192.168.1.0 0000 0000 /25 192.168.1.128/25
1.129-1.254
172.16.0.0/16 划7个网段
172.168.0000 0000. 0000 0000
172.16.000 0 0000. 0000 0000
172.16.0.0/19 - 172.16.31.254
172.16.001 0 0000. 0000 0000
172.16.32.0/19 -172.16.63.254
172.16.010 0 0000. 0000 0000
172.16.64.0/19 -172.16.95.254
172.16.011 0 0000. 0000 0000
172.16.96.0/19 -172.16.127.254
172.16.100 0 0000. 0000 0000
172.16.128.0/19 -172.16.159.254
172.16.101 0 0000. 0000 0000
172.16.160.0/19 -172.16.191.254
172.16.110 0 0000. 0000 0000
172.16.192.0/19 -172.16.223.254
172.16.111 0 0000. 0000 0000
172.16.224.0/19 -172.16.255.254
CIDR ------ 无类域间路由 — 汇总
取相同,去不同
192.168.0.0/24
192.168.0000 00 00 . 0000 0000
192.168.1.0/24
192.168.0000 00 01 . 0000 0000
192.168.2.0/24
192.168.0000 00 10. 0000 0000
192.168.3.0/24
192.168.0000 00 11 . 0000 0000
192.168.0.0/22-------超网
172.168.0.0 /24
172.168.1.0 /24
172.168.2.0 /24
172.168.3.0 /24
汇总 : 172.16.0000 00 ---- 00 . 0000 0000
172.16.0.0/22
OSI/RM ------- 开放式系统互联参考模型
1979 -------- ISO -------- 国际标准化组织
OSI参考模型的核心思想: 分层
什么是分层 : 属于同一层面的不同功能,其目的和作用相似或相近;不同层面的功能其目的和作用具有明显的差异。每一层在下面提供的服务的基础上在提供增值服务。
应用层
表示层
会话层 ---- 维持网络应用和应用服务器之间的会话连接
传输层 ---- 实现端到端的传输。端口号--------会话层地址 1-----65535
其中 1 - 1023 称为知名端口号
网络层
数据链路层 ---- 逻辑链路控制层(LLC),介质访问控制层(MAC)----FCS(帧校验序列)---- 确保数据完整性 ---- CRC (循环冗余算法)
物理层
第1层是物理层(Physical Layer)(也即OSI模型中的第一层)
在课堂上经常是被忽略的。它看起来似乎很简单。但是,这一层的某些方面有时需要特别留意。物理层实际上就是布线、光纤、网卡和其它用来把两台网络通信设备连接在一起的东西。甚至一个信鸽也可以被认为是一个1层设备。网络故障的排除经常涉及到1层问题。我们不能忘记用五类线在整个一层楼进行连接的传奇故事。由于办公室的椅子经常从电缆线上压过,导致网络连接出现断断续续的情况。遗憾的是,这种故障是很常见的,而且排除这种故障需要耗费很长时间。
第2层是数据链路层(Data Link Layer)
运行以太网等协议。请记住,我们要使这个问题简单一些。第2层中最重要的是你应该理解网桥是什么。交换机可以看成网桥,人们现在都这样称呼它。网桥都在2层工作,仅关注以太网上的MAC地址。如果你在谈论有关MAC地址、交换机或者网卡和驱动程序,你就是在第2层的范畴。集线器属于第1层的领域,因为它们只是电子设备,没有2层的知识。第2层的相关问题在本网络讲座中有自己的一部分,因此现在先不详细讨论这个问题的细节。现在只需要知道第2层把数据帧转换成二进制位供1层处理就可以了。
第3层是网络层(Network Layer)
在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息- -源站点和目的站点地址的网络地址。
如果你在谈论一个IP地址,那么你是在处理第3层的问题,这是“数据包”问题,而不是第2层的“帧”。IP是第3层问题的一部分,此外还有一些路由协议和地址解析协议(ARP)。有关路由的一切事情都在第3层处理。地址解析和路由是3层的重要目的。
第4层是处理信息的传输层(Transport Layer)。
第4层的数据单元也称作数据包(packets)。但是,当你谈论TCP等具体的协议时又有特殊的叫法,TCP的数据单元称为段(segments)而UDP协议的数据单元称为“数据报(datagrams)”。这个层负责获取全部信息,因此,它必须跟踪数据单元碎片、乱序到达的数据包和其它在传输过程中可能发生的危险。理解第4层的另一种方法是,第4层提供端对端的通信管理。像TCP等一些协议非常善于保证通信的可靠性。有些协议并不在乎一些数据包是否丢失,UDP协议就是一个主要例子。
第5层是会话层( Session Layer)
这一层也可以称为会晤层或对话层,在会话层及以上的高层次中,数据传送的单位不再另外命名,统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。
第6层是表示层(Presentation Layer)
这一层主要解决用户信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩, 加密和解密等工作都由表示层负责。
第7层是“一切”。第7层也称作“应用层”(Application Layer),是专门用于应用程序的。
应用层确定进程之间通信的性质以满足用户需要以及提供网络与用户应用软件之间的接口服务。如果你的程序需要一种具体格式的数据,你可以发明一些你希望能够把数据发送到目的地的格式,并且创建一个第7层协议。SMTP、DNS和FTP都是7层协议。
分层的作用 :
- 更易于标准化。
- 降低层次之间的关联性。
- 便于学习和理解
TCP/IP
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。 TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
TCP/IP协议的组成
PDU --------- 协议数据单元
协议数据单元,是指在分层网络结构,例如在开放式系统互联(OSI)模型中,在传输系统的每一层都将建立协议数据单元(PDU)。
应用层 ---- 数据报文
传输层 ---- 数据段
网络层 ---- 数据包
数据链路层 ---- 数据帧
物理层 ---- 比特流
封装和解封装
应用层
HTTP ---- 超文本传输协议 ---- TCP 80
FTP ---- 文本传输协议 ----- TCP 20/21
Telnet ---- 远程登录协议 ---- TCP 23
DHCP ---- 动态主机配置协议 ---- UDP 67/68
DNS ---- 域名解析协议 ---- UDP/TCP 53
tftp ---- 简单文件传输协议 ---- UDP 69
HTTPS ---- HTtP+SSL/TLS ---- TCP 443
传输层 ---- 端口号 ----- TCP/UDP
网络层 ---- IP地址 ----- IP
数据链路层 ---- MAC地址 ---- 以太网 :早期局域网的解决方案,主要依赖MAC地址进行寻址。以太网主要工作在1与2层。
物理层
传输层 ----- TCP/UDP
- TCP是面向连接的协议,UDP是无连接的协议;
- TCP的传输是可靠的,UDP的传输“ 尽力而为”;
- TCP可以分段,UDP不行
- TCP可以实现流控,UDP不行
- TCP传输速率较慢,消耗资源较大;UDP传输速度快,消耗资源小;
TCP和UDP的使用场景
TCP适用于效率要求较低,但准确性要求较高的场景UDP适用于效率要求较高,但准确性要求较低的场景
什么是面向连接?
面向连接就是指设备在传输之前,先使用预备的协议建立点到带点的连接,然后再传输数据。
TCP的头部
—标志位: 6位,URG表示Urgent Pointer字段有意义:
ACK表示Acknowledgment Number字段有意义
PSH表示Push功能,RST表示复位TCP连接
SYN表示SYN报文(在建立TCP连接的时候使用)
FIN表示没有数据需要发送了(在关闭TCP连接的时候使用)
TCP工作方式
建立连接
TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN+ACK,并最终对对方的 SYN 执行 ACK 确认。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。
TCP三次握手的过程如下:
客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。
服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。
客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。
三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。
连接终止
建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的。具体过程如下图所示。
(1) 某个应用进程首先调用close,称该端执行“主动关闭”(active close)。该端的TCP于是发送一个FIN分节,表示数据发送完毕。
(2) 接收到这个FIN的对端执行 “被动关闭”(passive close),这个FIN由TCP确认。
注意:FIN的接收也作为一个文件结束符(end-of-file)传递给接收端应用进程,放在已排队等候该应用进程接收的任何其他数据之后,因为,FIN的接收意味着接收端应用进程在相应连接上再无额外数据可接收。
(3) 一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字。这导致它的TCP也发送一个FIN。
(4) 接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)确认这个FIN。 [3]
既然每个方向都需要一个FIN和一个ACK,因此通常需要4个分节。
注意:
(1) “通常”是指,某些情况下,步骤1的FIN随数据一起发送,另外,步骤2和步骤3发送的分节都出自执行被动关闭那一端,有可能被合并成一个分节。
(2) 在步骤2与步骤3之间,从执行被动关闭一端到执行主动关闭一端流动数据是可能的,这称为“半关闭”(half-close)。
(3) 当一个Unix进程无论自愿地(调用exit或从main函数返回)还是非自愿地(收到一个终止本进程的信号)终止时,所有打开的描述符都被关闭,这也导致仍然打开的任何TCP连接上也发出一个FIN。
无论是客户还是服务器,任何一端都可以执行主动关闭。通常情况是,客户执行主动关闭,但是某些协议,例如,HTTP/1.0却由服务器执行主动关闭。