0%

ip地址以及子网掩码

ip地址我们看到是十进制的,而实际上是二进制。

0000 0000八位字段,4个字段。0.0.0.0-255.255.255.255共42亿9千多万。

IP地址分类(A类 B类 C类 D类 E类)

IP地址由四段组成,每个字段是一个字节,8位,最大值是255,,

IP地址由两部分组成,即网络地址主机地址。网络地址表示其属于互联网的哪一个网络,主机地址表示其属于该网络中的哪一台主机。二者是主从关系。

IP地址的四大类型标识的是网络中的某台主机。IPv4的地址长度为32位,共4个字节,但实际中我们用点分十进制记法。

img

IP地址根据网络号和主机号来分,分为A、B、C三类及特殊地址D、E。 全0和全1的都保留不用。

A类:(1.0.0.0-126.0.0.0)(默认子网掩码:255.0.0.0或 0xFF000000)第一个字节为网络号,后三个字节为主机号。该类IP地址的最前面为“0”,所以地址的网络号取值于1~126之间。一般用于大型网络。

B类:(128.0.0.0-191.255.0.0)(默认子网掩码:255.255.0.0或0xFFFF0000)前两个字节为网络号,后两个字节为主机号。该类IP地址的最前面为“10”,所以地址的网络号取值于128~191之间。一般用于中等规模网络。

C类:(192.0.0.0-223.255.255.0)(子网掩码:255.255.255.0或 0xFFFFFF00)前三个字节为网络号,最后一个字节为主机号。该类IP地址的最前面为“110”,所以地址的网络号取值于192~223之间。一般用于小型网络。

D类:是多播地址。该类IP地址的最前面为“1110”,所以地址的网络号取值于224~239之间。一般用于多路广播用户[1] 。

E类:是保留地址。该类IP地址的最前面为“1111”,所以地址的网络号取值于240~255之间。

在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下:
A类地址:10.0.0.0~10.255.255.255
B类地址:172.16.0.0~172.31.255.255
C类地址:192.168.0.0~192.168.255.255

回送地址:loopback环回

127.0.0.1。 也是本机地址,等效于localhost或本机IP。一般用于测试使用。例如:ping 127.0.0.1来测试本机TCP/IP是否正常。

能用的ip只有abc三类:37个亿

img

A类:(1.0.0.0-126.0.0.0)(默认子网掩码:255.0.0.0 ==\8)(缩写是8)

B类:(128.0.0.0-191.255.0.0)(默认子网掩码:255.255.0.0 ==\16s)

C类:(192.0.0.0-223.255.255.0)(子网掩码:255.255.255.0 ==\24)

子网掩码:将一个ip地址

例:192.168.1.1 mask:255.255.255. 0,掩盖住的是24位1. 1就是网络号,后面的就是主机号。

子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。

子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。

子网掩码——屏蔽一个IP地址的网络部分的“全1”比特模式。对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。

  • 通过子网掩码,就可以判断两个IP在不在一个局域网内部。
  • 子网掩码可以看出有多少位是网络号,有多少位是主机号

网关


网关(Gateway)又称网间连接器、协议转换器。默认网关在网络层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连

网关实质上是一个网络通向其他网络的IP地址。

比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1192.168.2.254”,子网掩码为255.255.255.0。

在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。

而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。

所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。

广播地址(Broadcast Address)


广播地址(Broadcast Address)是专门用于同时向网络中所有工作站进行发送的一个地址。

在使用TCP/IP 协议的网络中,主机标识段host ID 为全1 的IP 地址为广播地址,广播的分组传送给host ID段所涉及的所有计算机。例如,对于10.1.1.0 (255.255.255.0 )网段,其广播地址为10.1.1.255 (255 即为2 进制的11111111 ),当发出一个目的地址为10.1.1.255 的分组(封包)时,它将被分发给该网段上的所有计算机。

根据IP地址和子网掩码求 网络地址 和 广播地址


  • 将IP地址和子网掩码换算为二进制,子网掩码连续全1的是网络地址,后面的是主机地址,虚线前为网络地址,虚线后为主机地址
  • IP地址和子网掩码进行与运算,结果是网络地址(即主机号全0是网络地址)
  • 将运算结果中的网络地址不变,主机地址变为1,结果就是广播地址
  • 地址范围就是含在本网段内的所有主机

网络地址+1即为第一个主机地址,广播地址-1即为最后一个主机地址,
由此可以看出地址范围是: 网络地址+1 至 广播地址-1

  • 主机的数量=2^二进制位数的主机-2

减2是因为主机不包括网络地址和广播地址。

示例
一个主机的IP地址是202.112.14.137,掩码是255.255.255.224,要求计算这个主机所在网络的网络地址和广播地址

根据子网掩码可以分割网络号+主机号


255.255.255.224 转二进制:

11111111 11111111 11111111 11100000

网络号有27位,主机号有5位

网络地址就是:把IP地址转成二进制和子网掩码进行与运算

11001010 01110000 00001110 10001001

IP地址&子网掩码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
11001010 01110000 00001110 10001001







11111111 11111111 11111111 11100000







------------------------------------------------------







11001010 01110000 00001110 10000000
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

即:202.112.14.128

计算广播地址


广播地址:网络地址的主机位全部变成1 ,10011111 即159 即:202.112.14.159

主机数


主机号有5位,那么这个地址中,就只能有25−2=3025−2=30个主机

因为其中全0作为网络地址,全1作为广播地址

根据每个网络的主机数量进行子网地址的规划和计算子网掩码


这也可按上述原则进行计算。

比如一个子网有10台主机,那么对于这个子网需要的IP地址是
10+1+1+1=13
注意:加的第一个1是指这个网络连接时所需的网关地址,接着的两个1分别是指网络地址和广播地址。
因为13小于16(16等于2的4次方),所以主机位为4位。

而 256-16=240 所以该子网掩码为255.255.255.240。

如果一个子网有14台主机,不少人常犯的错误是:依然分配具有16个地址空间的子网,而忘记了给网关分配地址。这样就错误了,因为:
14+1+1+1=17
17.大于16,所以我们只能分配具有32个地址(32等于2的5次方)空间的子网。这时子网掩码为:255.255.255.224

5) 主机的数量

206 110 4 0/18被划分成16个子网,每个子网掩码?


(划分成16个子网,根据子网掩码/18就表示有18个1,就要从的IP地址的主机位借4位来用作网络位!)

子网掩码是255.255.252.0

每个子网可以容纳的主机数是1024台。

下面我来给你详细解答:

206.110.1.0 /18 由最后的那个/18,我们可以知道这个IP已经规定了它的网络位是18位,它默认的子网掩码就是11111111.11111111.11 | 000000.00000000(其中1代表网络位,0代表主机位)

可以看出我们可以操作的位数就是后面的14个0,也就是说我们可以在地面划分出几位作为子网的网络位,进而来划分子网。要求是切分成16个子网,我们知道2的4次方刚好等于16,这就说明子网网络位的位数是4位,那14-4=10就是子网的主机位。所以上面我写的那串二进制就可以变成:11111111.11111111.111111 | 00.00000000(其中1代表网络位,0代表主机位)

ip段/数字-如192.168.0.1/24是什么意思?


后面这个数字标示了我们的网络号的位数,也就是子网掩码中前多少号为1

129.168.1.1 /24 这个24就是告诉我们网络号是24位

也就相当于告诉我们了

子网掩码是:11111111 11111111 11111111 00000000

即:255.255.255.0

172.16.10.33/27 中的/27

也就是说子网掩码是255.255.255.224 即27个全1

11111111 11111111 11111111 11100000

VLSM 与CIDR的比较/什么是CIDR/什么是VLSM
CIDR : netmask 缩短 VLSM: netmask 增长

使用CIDR聚合地址的方法与使用VLSM划分子网的方法类似。在使用VLSM划分子网时,将原来分类IP地址中的主机位按照需要划出一部分作为网络位使用;而在使用CIDR聚合地址时,则是将原来分类IP地址中的网络位划出一部分作为主机位使用。

++++++++++++++++++++++++++++++++++++++++++++++

什么是VLSM?

VLSM提出供了在一个主类(A、B、C类)网络内包含多个子网掩码的能力,以及对一个子网的再进行子网划分的能力。它的优点如下:

1:对IP地址更为有效的使用-如果不采用VLSM,公司将被限制为在一个A、B、C类网络号内只能使用一个子网掩码;
2:路由归纳的能力更强-VLSM允许在编址计划中有更多的体系分层,因此可以在路由表内进行更好的路由归纳。

变长子网掩码(VLSM)的作用:节约IP地址空间;减少路由表大小.使用VLSM时,所采用的路由协议必须能够支持它。

++++++++++++++++++++++++++++++++++++++++++++++

什么是路由归纳
在大型互连网络中,存在着成百上千的网络。在这环境中,一般不希望路由器在它的路由表中保存所有的这些路由。路由归纳(也被子称为路由聚合或超网 supernetting)可以减少路由器必须保存的路由条目数量,因为它是在一个归纳地址中代表一系列网络号的一种方法。
在大型 、复杂的网络中使用路由归纳的另一个优点是它可以使其它路由器免受网络拓朴结构变化的影响。只有在就用了一个正确的地址规划时,路由归纳才能可行和最有效,在子网环境中,当网络地址是以2的指数形式的连续区块时,路由归纳是最有效的。

路 由选择协议根据共享网络地址部分来归纳或聚合路由。无类别路由选择协议—OSPF和EIGRP-支持基于子网地址,包括VLSM编者按址的路由归纳。 有类别路由选择协议- RIPv1和IGRP-自动地在有类别网络的边界上归纳路由。有类别路由选择协议不支持在任何其它比特边界上的路由归纳,而无类别路由选择协议支持在任何 比特边界上的路由归纳。
因为路由表的条目少了,路由归纳可以减少对路由器内存的占用,减少路由选择协议造成的网络流量。

网络中的路由归纳能够正确的工作,必须满足下面要求:
1:多个IP地址必须共享相同的高位比特;
2:路由选择协议必须根据32比特的IP地址和高达32比特的前缀长度来作出路由转发决定
3:路由更新必须将前缀长度(子网掩码)与32比特的IP地址一起传输。

++++++++++++++++++++++++++++++++++++++++++++++

无类别域间路由(CIDR)
CIDR是开发用于帮助减缓IP地址和路由表增大问题的一项技术。CIDR(Classless Inter-Domain Routing,无类域间路由)的基本思想是取消IP地址的分类结构,将多个地址块聚合在一起生成一个更大的网络,以包含更多的主机。CIDR支持路由聚 合,能够将路由表中的许多路由条目合并为成更少的数目,因此可以限制路由器中路由表的增大,减少路由通告。同时,CIDR有助于IPv4地址的充分利用。 CIDR叫做无类域间路由,ISP常用这样的方法给客户分配地址,ISP提供给客户1个块(block size),类似这样:192.168.10.32/28,这排数字告诉你你的子网掩码是多少,/28代表多少位为1,最大/32.但是你必须知道的1点 是:不管是A类还是B类还是其他类地址,最大可用的只能为30/,即保留2位给主机位。

++++++++++++++++++++++++++++++++++++++++++++++

CIDR举例:

假设有一组C类地址为192.168.8.0-192.168.15.0,如果用CIDR将这组地址聚合为一个网络,其网络地址和子网掩码应该为:
  A. 192.168.8.0/21
  B. 192.168.8.0/20
  C. 192.168.8.0/24
  D. 192.168.8.15/24

KEY:A
  要求将192.168.8.0-192.168.15.0这组C类地址聚合为一个网络,我们先将C类地址的第三个八位组转换成二进制:

点分十进制 将第三个八位组转换成二进制

1
2
3
4
5
6
7
8
9
192.168.8.0 	192.168.00001 000.0
192.168.9.0 192.168.00001 001.0
192.168.10.0 192.168.00001 010.0
192.168.11.0 192.168.00001 011.0
192.168.12.0 192.168.00001 100.0
192.168.13.0 192.168.00001 101.0
192.168.14.0 192.168.00001 110.0
192.168.15.0 192.168.00001 111.0
12345678

从上表中可以看出,只要将网络位的低三位划分出来作为主机位,这些C类地址就被聚合在一个网络之中。因此,聚合后的网络地址应该为192.168.8.0/21,正确答案为A。

主机地址只代表一个主机,只有网络地址才有聚合的意义

Read more »

OSI-TCP分层

1、ISO:国际标准化组织,是一个全球性的非政府组织。

2、OSI:开放原始码组织,是一个致力于推动开源软件发展的非盈利组织。

ISO 创建 OSI模型

OSI参考模型
这里写图片描述

TCP/IP协议四层:应用层,传输层,网络互联层,网络接口层。

TCP/IP 和 ISO/OSI

  img

  ISO/OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI。
  TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议,通过20多年的发展已日渐成熟,并被广泛应用于局域网和广域网中,目前已成为事实上的国际标准。TCP/IP协议簇是一组不同层次上的多个协议的组合,通常被认为是一个四层协议系统,与OSI的七层模型相对应。

回到顶部

TCP/IP分层模型

  img

  • 应用层

  应用层决定了向用户提供应用服务时通信的活动。|| 应用层负责处理特定的应用程序细节。

  TCP/IP 协议族内预存了各类通用的应用服务。比如,FTP(File Transfer Protocol,文件传输协议)和 DNS(Domain Name System,域 名系统)服务就是其中两类。 HTTP 协议也处于该层。

  • 传输层

  传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据 传输。

  在传输层有两个性质不同的协议:TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Data Protocol,用户数据报 协议)。


  主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。

 TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。为了提供可靠的服务,TCP采用了超时重传、发送和接收端到端的确认分组等机制。

  UDP则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。一个数据报是指从发送方传输到接收方的一个信息单元(例如,发送方指定的一定字节数的信息)。UDP协议任何必需的可靠性必须由应用层来提供。

  • 网络层

  网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数 据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计 算机,并把数据包传送给对方。

  与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所 起的作用就是在众多的选项内选择一条传输路线。


  也称作互联网层(在第一个图中为网际层),处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP协议(网际协议),ICMP协议(Internet互联网控制报文协议),以及IGMP协议(Internet组管理协议)。

  IP是一种网络层协议,提供的是一种不可靠的服务,它只是尽可能快地把分组从源结点送到目的结点,但是并不提供任何可靠性保证。同时被TCP和UDP使用。TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互联网中进行传输。

  ICMP是IP协议的附属协议。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。

  IGMP是Internet组管理协议。它用来把一个UDP数据报多播到多个主机。

  • 链路层

  用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱 动、NIC(Network Interface Card,网络适配器,即网卡),及光纤等 物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴均在 链路层的作用范围之内。


  也称作数据链路层或网络接口层(在第一个图中为网络接口层和硬件层),通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址。

数据的封装与分用

  img

  

  当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),该过程如图所示。

  TCP传给IP的数据单元称作TCP报文段或简称为TCP段(TCP segment);UDP数据与TCP数据基本一致。唯一的不同是UDP传给IP的信息单元称作U D P数据报(UDP datagram),而且UDP的首部长为8字节。IP传给网络接口层的数据单元称作IP数据报(IP datagram)。通过以太网传输的比特流称作帧(Frame )。

  img

  当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用(Demultiplexing)。协议是通过目的端口号、源I P地址和源端口号进行解包的。

其他相关概念

  img

  • 端口号

  服务器一般都是通过知名端口号来识别的。例如,对于每个TCP/IP实现来说,FTP服务器的TCP端口号都是21,每个Telnet服务器的TCP端口号都是23,每个TFTP (简单文件传送协议)服务器的UDP端口号都是69。任何TCP/IP实现所提供的服务都用知名的1~1023之间的端口号。这些知名端口号由Internet号分配机构(Internet Assigned Numbers Authority, IANA)来管理。知名端口号介于1~255之间;256~1023之间的端口号通常都是由Unix系统占用,以提供一些特定的Unix服务;1024~5000端口号用于客户端分配临时端口号;大于5000的端口号是为其他服务器预留的。

  • DNS

  DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,它是由解析器以及域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。

TCP/IP 通信传输流

  img

  利用 TCP/IP 协议族进行网络通信时,会通过分层顺序与对方进行通 信。发送端从应用层往下走,接收端则往应用层往上走。

  我们用 HTTP 举例来说明,首先作为发送端的客户端在应用层 (HTTP 协议)发出一个想看某个 Web 页面的 HTTP 请求。

  接着,为了传输方便,在传输层(TCP 协议)把从应用层处收到的数 据(HTTP 请求报文)进行分割,并在各个报文上打上标记序号及端 口号后转发给网络层。

  在网络层(IP 协议),增加作为通信目的地的 MAC 地址后转发给链 路层。这样一来,发往网络的通信请求就准备齐全了。

  接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用 层。当传输到应用层,才能算真正接收到由客户端发送过来的 HTTP 请求。

  img

  发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该 层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层 时会把对应的首部消去。

  这种把数据信息包装起来的做法称为封装(encapsulate)。

负责传输的 IP 协议

  按层次分,IP(Internet Protocol)网际协议位于网络层。Internet Protocol 这个名称可能听起来有点夸张,但事实正是如此,因为几乎 所有使用网络的系统都会用到 IP 协议。TCP/IP 协议族中的 IP 指的就 是网际协议,协议名称中占据了一半位置,其重要性可见一斑。可能 有人会把“IP”和“IP 地址”搞混,“IP”其实是一种协议的名称。

  IP 协议的作用是把各种数据包传送给对方。而要保证确实传送到对方 那里,则需要满足各类条件。其中两个重要的条件是 IP 地址和 MAC 地址(Media Access Control Address)。

  IP 地址指明了节点被分配到的地址,MAC 地址是指网卡所属的固定 地址。IP 地址可以和 MAC 地址进行配对。IP 地址可变换,但 MAC 地址基本上不会更改。

  使用 ARP 协议凭借 MAC 地址进行通信

  IP 间的通信依赖 MAC 地址。在网络上,通信的双方在同一局域网 (LAN)内的情况是很少的,通常是经过多台计算机和网络设备中转 才能连接到对方。而在进行中转时,会利用下一站中转设备的 MAC 地址来搜索下一个中转目标。这时,会采用 ARP 协议(Address Resolution Protocol)。ARP 是一种用以解析地址的协议,根据通信方 的 IP 地址就可以反查出对应的 MAC 地址。

  img

物理层

设备:屏蔽双绞线,非屏蔽双绞线,集线器,转换器,中继器

走数字信号,也就是比特流。

数据链路层

网卡号就是mac地址,数据链路层对应接口部分。以太网地址就是MAC地址。有mac地址才可以上网。

设备:交换机,网卡,网桥。

mac地址是48位二进制。12个16进制数表示。前24位是标准组织IEEE制度,后24位厂家直接指定。

例:00-1C-25-91-65-48 或001c.2591.6548

网络层

为了更精准找到用户,需要为网络设备提供逻辑地址,所以需要ip地址。也叫因特网地址。ip地址最常用设备就是路由器。ip用算法编译,最快转发到达。实现一个一个结点最快到达。

传输层

负责建立端到端的连接,负责数据在端到端之前的传输。传输层通过端口号区分上层服务。

提供TCP和UDP

1. 对比

UDP TCP
是否连接 无连接 面向连接
是否可靠 不可靠传输,不使用流量控制和拥塞控制 可靠传输,使用流量控制和拥塞控制
连接对象个数 支持一对一,一对多,多对一和多对多交互通信 只能是一对一通信
传输方式 面向报文 面向字节流
首部开销 首部开销小,仅8字节 首部最小20字节,最大60字节
适用场景 适用于实时应用(IP电话、视频会议、直播等)域名DNS系统,视频流 适用于要求可靠传输的应用,例如文件传输,电子邮件,web浏览器

2. 总结

  • TCP向上层提供面向连接的可靠服务 ,UDP向上层提供无连接不可靠服务。
  • 虽然 UDP 并没有 TCP 传输来的准确,但是也能在很多实时性要求高的地方有所作为
  • 对数据准确性要求高,速度可以相对较慢的,可以选用TCP

二、UDP

UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。

它有以下几个特点:

1. 面向无连接

首先 UDP 是不需要和 TCP一样在发送数据前进行三次握手建立连接的,想发数据就可以开始发送了。并且也只是数据报文的搬运工,不会对数据报文进行任何拆分和拼接操作。

具体来说就是:

  • 在发送端,应用层将数据传递给传输层的 UDP 协议,UDP 只会给数据增加一个 UDP 头标识下是 UDP 协议,然后就传递给网络层了
  • 在接收端,网络层将数据传递给传输层,UDP 只去除 IP 报文头就传递给应用层,不会任何拼接操作

2. 有单播,多播,广播的功能

UDP 不止支持一对一的传输方式,同样支持一对多,多对多,多对一的方式,也就是说 UDP 提供了单播,多播,广播的功能。

3. UDP是面向报文的

发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。因此,应用程序必须选择合适大小的报文

4. 不可靠性

首先不可靠性体现在无连接上,通信都不需要建立连接,想发就发,这样的情况肯定不可靠。

并且收到什么数据就传递什么数据,并且也不会备份数据,发送数据也不会关心对方是否已经正确接收到数据了。

再者网络环境时好时坏,但是 UDP 因为没有拥塞控制,一直会以恒定的速度发送数据。即使网络条件不好,也不会对发送速率进行调整。这样实现的弊端就是在网络条件不好的情况下可能会导致丢包,但是优点也很明显,在某些实时性要求高的场景(比如电话会议)就需要使用 UDP 而不是 TCP。

img

从上面的动态图可以得知,UDP只会把想发的数据报文一股脑的丢给对方,并不在意数据有无安全完整到达。

5. 头部开销小,传输数据报文时是很高效的。

img

UDP 头部包含了以下几个数据:

  • 两个十六位的端口号,分别为源端口(可选字段)和目标端口
  • 整个数据报文的长度
  • 整个数据报文的检验和(IPv4 可选 字段),该字段用于发现头部信息和数据中的错误

因此 UDP 的头部开销小,只有八字节,相比 TCP 的至少二十字节要少得多,在传输数据报文时是很高效的

三、TCP

当一台计算机想要与另一台计算机通讯时,两台计算机之间的通信需要畅通且可靠,这样才能保证正确收发数据。例如,当你想查看网页或查看电子邮件时,希望完整且按顺序查看网页,而不丢失任何内容。当你下载文件时,希望获得的是完整的文件,而不仅仅是文件的一部分,因为如果数据丢失或乱序,都不是你希望得到的结果,于是就用到了TCP。

TCP协议全称是传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,由 IETF 的RFC 793定义。TCP 是面向连接的、可靠的流协议。流就是指不间断的数据结构,你可以把它想象成排水管中的水流。

1. TCP连接过程

如下图所示,可以看到建立一个TCP连接的过程为(三次握手的过程):

img

第一次握手

客户端向服务端发送连接请求报文段。该报文段中包含自身的数据通讯初始序号。请求发送后,客户端便进入 SYN-SENT 状态。

第二次握手

服务端收到连接请求报文段后,如果同意连接,则会发送一个应答,该应答中也会包含自身的数据通讯初始序号,发送完成后便进入 SYN-RECEIVED 状态。

第三次握手

当客户端收到连接同意的应答后,还要向服务端发送一个确认报文。客户端发完这个报文段后便进入 ESTABLISHED 状态,服务端收到这个应答后也进入 ESTABLISHED 状态,此时连接建立成功。

这里可能大家会有个疑惑:为什么 TCP 建立连接需要三次握手,而不是两次?这是因为这是为了防止出现失效的连接请求报文段被服务端接收的情况,从而产生错误。

img

2. TCP断开链接

img

TCP 是全双工的,在断开连接时两端都需要发送 FIN 和 ACK。

第一次握手

若客户端 A 认为数据发送完成,则它需要向服务端 B 发送连接释放请求。

第二次握手

B 收到连接释放请求后,会告诉应用层要释放 TCP 链接。然后会发送 ACK 包,并进入 CLOSE_WAIT 状态,此时表明 A 到 B 的连接已经释放,不再接收 A 发的数据了。但是因为 TCP 连接是双向的,所以 B 仍旧可以发送数据给 A。

第三次握手

B 如果此时还有没发完的数据会继续发送,完毕后会向 A 发送连接释放请求,然后 B 便进入 LAST-ACK 状态。

第四次握手

A 收到释放请求后,向 B 发送确认应答,此时 A 进入 TIME-WAIT 状态。该状态会持续 2MSL(最大段生存期,指报文段在网络中生存的时间,超时会被抛弃) 时间,若该时间段内没有 B 的重发请求的话,就进入 CLOSED 状态。当 B 收到确认应答后,也便进入 CLOSED 状态。

3. TCP协议的特点

  • 面向连接

    面向连接,是指发送数据之前必须在两端建立连接。建立连接的方法是“三次握手”,这样能建立可靠的连接。建立连接,是为数据的可靠传输打下了基础。

  • 仅支持单播传输

每条TCP传输连接只能有两个端点,只能进行点对点的数据传输,不支持多播和广播传输方式。

  • 面向字节流

TCP不像UDP一样那样一个个报文独立地传输,而是在不保留报文边界的情况下以字节流方式进行传输。

  • 可靠传输

    对于可靠传输,判断丢包,误码靠的是TCP的段编号以及确认号。TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。

  • 提供拥塞控制

当网络出现拥塞的时候,TCP能够减小向网络注入数据的速率和数量,缓解拥塞

  • TCP提供全双工通信

TCP允许通信双方的应用程序在任何时候都能发送数据,因为TCP连接的两端都设有缓存,用来临时存放双向通信的数据。当然,TCP可以立即发送一个数据段,也可以缓存一段时间以便一次发送更多的数据段(最大的数据段大小取决于MSS)

应用层

就是.exe文件

为应用软件提供接口,从而使得应用程序能够使用网络服务。例:http,ftp,telnet,dns,smtp…

每个应用程序都有端口号,http:80端口,ftp:21端口。dns:53端口。

| E | IP | UDP | APPLIACTION

| fram|packet|segment|payload

Read more »

1.计算机网络基础

C/S架构的优缺点:
  • 优点:
    1.客户端因为是独立设计,所以可以实现个性化
    2.因为客户端是需要进行安装的,可以不需要重复安装和加载
    3.因为客户端是独立开发的,所以有能力对客户端进行安全设计
    4.如果遇到不同的操作系统,需要为不同的操作系统各开发一套客户端
  • 缺点:
    1.因为客户端是不需要重复安装,所以用户可以不更新与升级,增加了维护成本。
    2.因为需要开发客户端和服务器两套程序,所以开发成本会增加
B/S架构的优缺点:
  • 优点:
    1.因为B/S架构具备通用性,所以开发成本较低。
    2.因为不需要安装客户端,所以客户端不需要进行升级,只需要更新后台代码即可实现所有客户端的更新。
    3.因为B/S架构多用WEB网页进行开发,所以增、删功能也非常容易,只需要修改网页即可完成
  • 缺点:
    1.耗流量,每次都要加载全部的内容(不过有缓存可以降低流量损耗)
    2.因为没有独立的客户端,所以无法实现个性化(通过账号体系可以实现)
    3.因为没有独立设计客户端,所以客户端难以实现安全控制(HTTPS、控件)。
    4.难以实现特殊的操作(删本地文件),所以所有的杀毒软件都是C/S架构的。
    B/S架构更多的时候是使用了HTTP协议、而C/S架构更多的时候使用的WinSocke t协议(TCP、UDP)

总结:CS响应速度快,安全性强,一般应用于局域网中,但是开发维护成本高;BS可以实现跨平台,客户端零维护,但是个性化能力低,响应速度较慢。所以有些单位日常办公应用BS,在实际生产中使用CS结构。

rs 路由器和交换机:router switch

交换机可以实现局域网,而路由器是连接不同局域网,实现广域网。

1、LAN 局域网(Local Area Network)接口,通俗讲就是路由和用户之间网线口;一组终端设备和由共同的组织管理的用户。所有用户连接lan下。

2、WAN 广域网(Wide Area Network),通俗讲就是和光猫猫外部网连接的网线口;连接分布于不同地理位置的LAN.

3、WLAN无线局域网(Wireless LAN),数据通过电磁波传输;

通俗点说,WAN口是对外的接口,和运营商、上级网络打交道。

LAN和WLAN是对内的接口,内部的电脑、手机、PAD,都是接入到LAN或者WLAN。

img

互联网服务提供商(Internet Service Provider),简称ISP,作用:

一是接入服务,即帮助用户接入Internet;二是导航服务,即帮助用户在Internet上找到所需要的信息;三是信息服务,即建立数据服务系统,收集、加工、存储信息,定期维护更新,并通过网络向用户提供信息内容服务。

HUB, SWITCH, ROUTER DIFFERENCES:

Hub: only detects that a device is physically connected to it.集线器

Switch: can detect specific devices that are connected to it.

keeps a record of the MAC addresses of those devices.

Hubs and swtiches are used to exchange data within a local area network. Not used to exchange data outside their own network. To exchange data outside their ow network, a device needs to be able to read I.P. addresses.

Router: routes data from one network to another based on their IP address.

端口port

端口概念

在网络技术中,端口(port)大致有两种意思:
一是物理上的端口,比如ADSL、Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。
二是逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。
这里要说的是逻辑意义上的端口。

什么是端口

在Internet上,各主机间通过TCP/TP协议发送和接收数据报,各个数据报根据其目的主机的IP地址来进行互联网络中的路由选择。可见,把数据报顺利的传送到目的主机是没有问题的。我们知道大多数操作系统都支持多程序(进程)同时运行,那么目的主机应该把接收到的数据报传送给众多同时运行的进程中的哪一个?显然这个问题有待解决,端口机制便由此被引入了进来。

本地操作系统会给那些有需求的进程分配协议端口(protocal port,即我们常说的端口),每个协议端口由一个正整数标识,如:80,139等等。当目的主机接收到数据报后,将根据报文首部的目的端口号,把数据发送到相应端口,而与此端口相对应的那个进程将会领取数据并等待下一组数据的到来。

端口其实就是队,操作系统为各个进程分配了不同的队,数据报按照目的端口被推入相应的队中,等待被进程取用,在极特殊的情况下,这个队也是有可能溢出的,不过操作系统允许各进程指定和调整自己的队的大小。不光接受数据报的进程需要开启它自己的端口,发送数据报的进程也需要开启端口,这样,数据报中将会标识有源端口,以便接受方能顺利的回传数据报到这个端口。

端口的作用

我们知道,一台拥有IP地址的主机可以提供许多服务,比如Web服务,FTP服务、SMTP服务等,这些服务完全可以通过1个IP地址来实现。那么,主机是怎样区分不同的网络服务呢?显然不能只靠IP地址,因为IP地址与网络服务的关系是一对多的关系。实际上是通过”IP地址+端口号”来区分不同的服务的。
客户端通常对它所使用的端口号并不关心,只需保证该端口号在本机上是唯一的就可以了。客户端端口号又称作临时端口号(即存在时间很短)。这是因为它通常只是在用户运行该客户程序时才存在,而服务器则只要主机开着,其服务就运行。

查看端口

可以使用Netstat命令:开始->运行,键入”cmd”并回车,打开命令提示符窗口。在命令提示符状态下键入”netstat -a -n”,按下回车键后就可以看到以数字形式显示的 TCP和UDP连接的端口号及状态。

img

关闭/开启端口

默认的情况下,有很多不安全的或者没有什么用的端口是开启的,比如Telent服务的23端口、FTP服务的21端口、SMTP服务的25端口、RPC服务的135端口等。为了保证系统的安全性,我们可以通过下面的方法来关闭/开启端口。

关闭端口

比如关闭Apache2.4服务端口,可以这样做:开始->运行->服务->在服务窗口找到Apache2.4并双击->单击”停止”按钮来停止该服务->然后在”启动类型”中选择”禁用”->最后单击”确定”按钮即可。关闭了Apache2.4服务就相当于关闭了对应的端口。

img

开启端口

如果要开启该端口只要先在”启动类型”选择”自动”,单击”确定”按钮,再打开该服务,在”服务状态中单击”启动”按钮即可启用该端口,最后,单击”确定”按钮即可。

端口分类

逻辑意义上的端口有多种分类标准,下面是两种常见的分类:

1.按端口号分布划分
(1)知名端口(Well-Known Ports)

知名端口即众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务。比如25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)服务等等。

(2)动态端口(Dynamic Ports)

动态端口的范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。比如1024端口就是分配给第一个向系统发出申请的程序。在关闭程序进程后,就会释放所占用的端口号。
不过动态端口也常常被病毒木马程序所利用,如冰河默认连接端口是7626、WAY 2.4是8011、Netspy 3.0是7306、YAI病毒是1024等等。

2.按协议类型划分

按协议类型划分,可以分为TCP、UDP、IP和ICMP(Internet控制消息协议)等端口。

(1)TCP端口

TCP端口,即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括FTP服务的21端口,Telent服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口等。

(2)UDP端口

UDP端口,即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。常见的有DNS服务的53端口,SNMP(简单网络管理协议)服务的161端口,QQ使用的8000和4000端口等等。

端口在入侵中的作用

有人曾经把服务器比作房子,而把端口比作通向不同房间(服务)的门。入侵者要占领这间房子,势必要破门而入(物理入侵另说),那么对于入侵者来说,了解房子开了几扇门,都是什么样的门,门后面有什么东西就显得至关重要。
入侵者通常会用扫描器对目标主机的端口进行扫描,以确定哪些端口是开放的,从开放的端口,入侵者可以知道目标主机大致提供了哪些服务,进而猜测可能存在的漏洞,因此对端口的扫描可以帮助我们更好的了解目标主机,而对于管理员,扫描本机的开放端口也是做好安全防范的第一步。

常见端口表汇总

1 tcpmux TCP Port Service Multiplexer 传输控制协议端口服务多路开关选择器
2 compressnet Management Utility     compressnet 管理实用程序
3 compressnet Compression Process    压缩进程
5 rje Remote Job Entry          远程作业登录
7 echo Echo               回显
9 discard Discard            丢弃
11 systat Active Users          在线用户
13 daytime Daytime            时间
17 qotd Quote of the Day         每日引用
18 msp Message Send Protocol       消息发送协议
19 chargen Character Generator      字符发生器
20 ftp-data File Transfer [Default Data] 文件传输协议(默认数据口) 
21 ftp File Transfer [Control]      文件传输协议(控制)
22 ssh SSH Remote Login Protocol     SSH远程登录协议
23 telnet Telnet             终端仿真协议
24 ? any private mail system       预留给个人用邮件系统
25 smtp Simple Mail Transfer       简单邮件发送协议
27 nsw-fe NSW User System FE       NSW 用户系统现场工程师
29 msg-icp MSG ICP            MSG ICP
31 msg-auth MSG Authentication      MSG验证
33 dsp Display Support Protocol     显示支持协议
35 ? any private printer server     预留给个人打印机服务
37 time Time               时间
38 rap Route Access Protocol       路由访问协议
39 rlp Resource Location Protocol    资源定位协议
41 graphics Graphics           图形
42 nameserver WINS Host Name Server   WINS 主机名服务
43 nicname Who Is            “绰号” who is服务
44 mpm-flags MPM FLAGS Protocol     MPM(消息处理模块)标志协议
45 mpm Message Processing Module [recv] 消息处理模块 
46 mpm-snd MPM [default send]      消息处理模块(默认发送口)
47 ni-ftp NI FTP             NI FTP
48 auditd Digital Audit Daemon      数码音频后台服务 
49 tacacs Login Host Protocol (TACACS)  TACACS登录主机协议
50 re-mail-ck Remote Mail Checking Protocol 远程邮件检查协议
51 la-maint IMP Logical Address Maintenance IMP(接口信息处理机)逻辑地址维

52 xns-time XNS Time Protocol      施乐网络服务系统时间协议  
53 domain Domain Name Server       域名服务器
54 xns-ch XNS Clearinghouse       施乐网络服务系统票据交换
55 isi-gl ISI Graphics Language     ISI图形语言
56 xns-auth XNS Authentication      施乐网络服务系统验证
57 ? any private terminal access     预留个人用终端访问
58 xns-mail XNS Mail           施乐网络服务系统邮件
59 ? any private file service      预留个人文件服务
60 ? Unassigned             未定义
61 ni-mail NI MAIL            NI邮件?
62 acas ACA Services           异步通讯适配器服务
63 whois+ whois+              WHOIS+
64 covia Communications Integrator (CI) 通讯接口 
65 tacacs-ds TACACS-Database Service   TACACS数据库服务
66 sqlnet Oracle SQLNET        Oracle SQL*NET
67 bootps Bootstrap Protocol Server   引导程序协议服务端
68 bootpc Bootstrap Protocol Client   引导程序协议客户端
69 tftp Trivial File Transfer      小型文件传输协议
70 gopher Gopher             信息检索协议
71 netrjs-1 Remote Job Service      远程作业服务
72 netrjs-2 Remote Job Service      远程作业服务
73 netrjs-3 Remote Job Service      远程作业服务
74 netrjs-4 Remote Job Service      远程作业服务
75 ? any private dial out service    预留给个人拨出服务
76 deos Distributed External Object Store 分布式外部对象存储 
77 ? any private RJE service      预留给个人远程作业输入服务
78 vettcp vettcp             修正TCP?
79 finger Finger             FINGER(查询远程主机在线用户等信
息)
80 http World Wide Web HTTP       全球信息网超文本传输协议
81 hosts2-ns HOSTS2 Name Server     HOST2名称服务
82 xfer XFER Utility           传输实用程序
83 mit-ml-dev MIT ML Device       模块化智能终端ML设备
84 ctf Common Trace Facility       公用追踪设备
85 mit-ml-dev MIT ML Device       模块化智能终端ML设备
86 mfcobol Micro Focus Cobol       Micro Focus Cobol编程语言
87 ? any private terminal link      预留给个人终端连接
88 kerberos Kerberos           Kerberros安全认证系统
89 su-mit-tg SU/MIT Telnet Gateway    SU/MIT终端仿真网关
90 dnsix DNSIX Securit Attribute Token Map DNSIX 安全属性标记图 
91 mit-dov MIT Dover Spooler       MIT Dover假脱机
92 npp Network Printing Protocol     网络打印协议
93 dcp Device Control Protocol      设备控制协议
94 objcall Tivoli Object Dispatcher   Tivoli对象调度
95 supdup SUPDUP            
96 dixie DIXIE Protocol Specification  DIXIE协议规范
97 swift-rvf Swift Remote Virtural File Protocol 快速远程虚拟文件协议 
98 tacnews TAC News           TAC(东京大学自动计算机?)新闻协议

Read more »