4.4 计算机网络

admin 提交于 周二, 11/13/2018 - 09:50

1. 协议

1.1 OSI网络七层协议模型

下面是一个经典的OSI网络七层协议模型,演示了数据在计算机简传输的一个抽象过程。七层协议由下往上依次为:物理层、数据连接层、网络层、传输层、会话层、表示层、应用层。对于大部分的软件开发人员,主要接触的是应用层。TELNET、HTTP、FTP、NFS、SMTP这些都是应用层的协议。

OSI网络七层协议模型

1.2 TCP和UDP

应用层的协议分TCP和UDP两大类,需要准确传输的协议用TCP方式,例如Web服务、Email、FTP,TCP协议有较多额外的消耗用于保证数据完整和正确。对于视频、音频等流媒体应用,则可以使用UDP的方式,减少消耗以达到最高的网络传输率。

2. IP地址

IP地址是唯一代表一个网络接入设备的地址,就像房屋的门牌一样。在家里上网,我们会获得一个随机分配的动态IP,每次都不同。但每个区域所用的IP是相对固定的,例如我们可以查到一个IP来自广州电信还是北京联通。

IP地址由4组数字组成,有公网IP和局域网IP之分,公网IP是全球都可访问的,由于IPv4设计的时候预留的IP数量不足,公网IP有限,不能让全世界的设备都享有IPv4的公网IP,在局域网中连接多台计算机我们需要用到局域网IP,这种结构同时也可以对局域网内机器的访问多一层控制。以10或192.168开头的IP是局域网IP,172.16-172.31开头的IP也是局域网的IP。对于服务器来说,通常同时具有公网IP和局域网IP,以满足更复杂的架构需要。

在局域网中,有一个子网掩码的概念,它定义了局域网可分配IP地址的数量。例如255.255.255.0表示可分配最低位的255个IP。

局域网中还有一个网关的概念,是局域网中向不同设备传递信息的一个设备,可以粗略地理解为常见的wifi路由器(尽管严格地说是不同的)。

在一台计算机上配置加入一个局域网络,我们通常要设置IP、子网掩码和网关,假设路由器的网关地址是192.168.1.1,那么我们可以把IP设置成192.168.1.2,子网掩码设置成255.255.255.0。一个宿舍的其它电脑可以设置成192.168.1.3、192.168.1.4等。一般情况下,wifi会自动分配IP地址,无需手动配置。

3. DNS

由于IP地址是4组数字,难以记忆,于是产生了域名,通过输入一组便于记忆的英文字母来访问网站。DNS的工作是把一个域名翻译成IP地址。当我们发现网络不通的时候,其中一个检查点是DNS工作是否正常,检查的方法是ping需要访问的域名,看结果中是否能够翻译出具体IP。

Linux中域名解释服务器的配置文件是:/etc/resolv.conf,如果发现默认的DNS服务器不好用,可以修改该文件。

如果我们想在本地修改一些域名的指向,或定义一些本地的域名,可以修改/etc/hosts文件,这些修改仅影响当前使用的计算机。

以下几个命令可以查询一个域名的相关信息,大家可以在命令行上试一下,也许会看到一些有趣的信息:dig、host、nslookup、whois

4. 调查网络问题的一些方法

4.1 ping

ping这个命令可以检测出域名转换成IP是否正常,访问该IP的网络是否通。下面是一个可以访问baidu.com和不能访问google.com的ping例子:

$ ping baidu.com
PING baidu.com (220.181.57.216): 56 data bytes
64 bytes from 220.181.57.216: icmp_seq=0 ttl=55 time=39.303 ms
64 bytes from 220.181.57.216: icmp_seq=1 ttl=55 time=38.146 ms
64 bytes from 220.181.57.216: icmp_seq=2 ttl=55 time=39.565 ms
^C
--- baidu.com ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 38.146/39.005/39.565/0.617 ms
$ ping google.com
PING google.com (216.58.203.14): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
^C
--- google.com ping statistics ---
5 packets transmitted, 0 packets received, 100.0% packet loss

 

4.2 netstat

netstat命令可以查看当前机器的网络状态,一个常用使用方式是`netstat -nlp`查看服务器正在监听的端口。比如说,当我们发现网站不能访问的时候,我们可以用该命令看看80端口是否被监听,如果没有就检查一下相关进程是否在运行。我们也可以通过这个命令看看服务器上开启了哪些网络服务,是否需要关闭有安全隐患的服务。也可以查看当前提供web服务的进程是Apache还是Nginx等。

4.3 traceroute

我们访问一个网站,其经过的光纤和网线可能环绕了整个地球。当我们发现一个网站不通的时候,怎样知道问题出在哪里呢?traceroute可以给我们一些提示,它会把整个请求所经过的路由列表给出来。以下是一个例子:

$ traceroute eguidedog.net
traceroute to eguidedog.net (47.91.128.213), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  11.220.37.65 (11.220.37.65)  7.839 ms  7.857 ms 11.220.36.1 (11.220.36.1)  7.477 ms
 4  11.220.36.54 (11.220.36.54)  4.855 ms 11.220.37.118 (11.220.37.118)  5.737 ms 11.220.36.118 (11.220.36.118)  5.231 ms
 5  11.217.38.238 (11.217.38.238)  3.902 ms 11.217.38.218 (11.217.38.218)  3.890 ms 11.217.38.238 (11.217.38.238)  3.858 ms
 6  116.251.117.158 (116.251.117.158)  1.803 ms 119.38.215.138 (119.38.215.138)  4.974 ms 42.120.253.1 (42.120.253.1)  2.047 ms
 7  116.251.113.153 (116.251.113.153)  3.313 ms  3.300 ms 42.120.242.229 (42.120.242.229)  2.916 ms
 8  183.2.180.9 (183.2.180.9)  3.768 ms 183.2.180.21 (183.2.180.21)  5.002 ms 183.2.180.25 (183.2.180.25)  4.744 ms
 9  183.2.182.113 (183.2.182.113)  3.938 ms 183.2.182.125 (183.2.182.125)  5.247 ms 183.2.182.113 (183.2.182.113)  4.931 ms
10  119.147.222.13 (119.147.222.13)  9.027 ms 119.147.223.113 (119.147.223.113)  10.094 ms 119.147.220.61 (119.147.220.61)  13.786 ms
11  59.43.80.21 (59.43.80.21)  7.028 ms 59.43.80.17 (59.43.80.17)  9.943 ms  8.186 ms
12  59.43.130.110 (59.43.130.110)  10.691 ms * *
13  59.43.187.154 (59.43.187.154)  19.747 ms 59.43.130.118 (59.43.130.118)  8.183 ms 59.43.187.150 (59.43.187.150)  8.976 ms
14  59.43.187.142 (59.43.187.142)  37.606 ms 59.43.183.110 (59.43.183.110)  13.826 ms 59.43.187.182 (59.43.187.182)  10.916 ms
15  59.43.247.18 (59.43.247.18)  13.131 ms 59.43.248.114 (59.43.248.114)  12.148 ms 59.43.248.250 (59.43.248.250)  11.961 ms
16  203.100.48.62 (203.100.48.62)  14.231 ms 59.43.181.190 (59.43.181.190)  13.136 ms 59.43.181.186 (59.43.181.186)  14.183 ms
17  116.251.72.185 (116.251.72.185)  16.464 ms 203.100.54.150 (203.100.54.150)  15.142 ms 116.251.66.153 (116.251.66.153)  14.073 ms
18  119.38.214.53 (119.38.214.53)  16.520 ms * *
19  * * *
20  47.91.128.213 (47.91.128.213)  16.200 ms  13.401 ms  13.041 ms

4.4 ifconfig

该命令类似于Windows的ipconfig,可以查看当前网络的IP、子网掩码、网关等参数,也可做更复杂的网卡配置。

4.5 ip命令

ifconfig、netstat来自于net-tools软件包,已经多年没有更新了。更强大的iproute2软件包中可以用一个ip命令完成很多功能。

5. IPv4和IPv6

    IPv4,是互联网协议(Internet Protocol,IP)的第四版,也是第一个被广泛使用,构成现今互联网技术的基础的协议。1981年 Jon Postel 在RFC791中定义了IP,Ipv4可以运行在各种各样的底层网络上,比如端对端的串行数据链路(PPP协议和SLIP协议) ,卫星链路等等。局域网中最常用的是以太网。
目前的全球因特网所采用的协议族是TCP/IP协议族。IP是TCP/IP协议族中网络层的协议,是TCP/IP协议族的核心协议。目前IP协议的版本号是4(简称为IPv4,v,version版本),它的下一个版本就是IPv6。

1.    表示
    IPv4地址是类似A.B.C.D 的格式,它是32位,用 . 分成四段,用10进制表示;而IPv6地址类似X:X:X:X:X:X:X:X的格式,它是128位的,用 : 分成8段,用16进制表示;可见,IPv6地址空间相对于IPv4地址有了 极大的扩充。
RFC2373中详细定义了IPv6地址,按照定义,一个完整的IPv6地址的表示法:xxxx:xxxx:xxxx:xxxx:xxxxx:xxxx:xxxx:xxxx
例如: 2001:0000:1F1F:0000:0000:0100:11A0:ADDF
为了简化其表示法,rfc2373提出每 段中前面的0可以省略,连续的0可省略为::,但只能出现一次。例如:
1080:0:0:0:8:800: 200C: 417A可简写为1080::8:800: 200C: 417A
FF01:0:0:0:0:0:0:101可简写为FF01::101
0:0:0:0:0:0:0:1可简写为::1
0:0:0:0:0:0:0:0可简写为::
类似于IPv4中 的CDIR表示法,IPv6用前缀来表示网络地址空间,比如:
2001 :251 :000:/48表示前缀为48位的地址空间,其后的80位可分配给网络中的主机,共有2的80次方个地址。
2.    IPv6的改进
IPv6对IPv4的分片进行了以下主要改进:
1)  IPv6只允许源节点对数据包进行分片,不允许中间路由分片,这样一来一个数据包如果需要分片则只进行一次分片即可;源主机为了判断是否需要分片,需要获取路径MTU ;
2)  IPv4的头部有些字段只和分片有关系,也就是说,在无需分片的时候,这些字段是没有用的,IPv6对此进行了改进,只有在需要分片的时候,才加一一个”分段扩展头部”, 把和分片相关的信息放到这个扩展头部中,从而提高了传输效率。
3.    IPv4的现状
    如今,IPv4的地址远远不能满足人们的需求。随着移动互联网的不断发展,人们可能会有好几个移动终端,每一个终端都需要一个地址。互联网的飞快发展对IP地址的资源需求更加强烈。加上逐渐成熟的云计算,也加剧了IP地址匮乏资源短缺的压力。
4.    IPv6的认识
IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。 IPv6最大的优点是增大了地址空间。
5.    IPv6的制约因素
    一是采用私有地址转换,这是解决IP地址短缺的权宜之计,不利于保障网络服务质量和网络安全,影响我国互联网长远发展;二是缺少IPv6信息资源;三是网络安全防护现状,防火墙管理控制,制约了IPv6发展。重要的还有:IPv4和IPv6理论上不兼容,所以互联互通技术有待发展

6. LPI考纲描述

4.4 Your Computer on the Network

Weight: 2

Description: Querying vital networking configuration and determining the basic requirements for a computer on a Local Area Network (LAN).

Key Knowledge Areas:

  • Internet, network, routers
  • Querying DNS client configuration
  • Querying network configuration

The following is a partial list of the used files, terms and utilities:

  • route, ip route show
  • ifconfig, ip addr show
  • netstat, ss
  • /etc/resolv.conf, /etc/hosts
  • IPv4, IPv6
  • ping
  • host

添加新评论

Restricted HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id> <img src>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。
验证码
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
请输入"汉语"