计算机网络linux

2019-11-14 18:37:03 gaofei0428 阅读数 6707
  • 计算机网络技术基础(全套)

    本套餐主要内容包括计算机网络的基础知识,从计算机网络的基本概念入手,介绍基本通信理论、计算机网络的体系结构、TCP/IP、局域网的概念及组成、网络设计与组网技术、网络操作系统的操作与维护、计算机网络安全及...

    12课时 0分钟 271人学习 深博
    免费试看

计算机网络

连接分散计算机设备以实现信息传递的系统计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统网络管理软件网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 

定义分类

按广义

计算机网络也称计算机通信网。关于计算机网络的最简单定义是:一些相互连接的、以共享资源为目的的、自治的计算机的集合。若按此定义,则早期的面向终端的网络都不能算是计算机网络,而只能称为联机系统(因为那时的许多终端不能算是自治的计算机)。但随着硬件价格的下降,许多终端都具有一定的智能,因而“终端”和“自治的计算机”逐渐失去了严格的界限。若用微型计算机作为终端使用,按上述定义,则早期的那种面向终端的网络也可称为计算机网络。另外,从逻辑功能上看,计算机网络是以传输信息为基础目的,用通信线路将多个计算机连接起来的计算机系统的集合,一个计算机网络组成包括传输介质通信设备。从用户角度看,计算机网络是这样定义的:存在着一个能为用户自动管理的网络操作系统。由它调用完成用户所调用的资源,而整个网络像一个大的计算机系统一样,对用户是透明的。一个比较通用的定义是:利用通信线路将地理上分散的、具有独立功能的计算机系统和通信设备按不同的形式连接起来,以功能完善的网络软件及协议实现资源共享和信息传递的系统。从整体上来说计算机网络就是把分布在不同地理区域的计算机与专门的外部设备用通信线路互联成一个规模大、功能强的系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。简单来说,计算机网络就是由通信线路互相连接的许多自主工作的计算机构成的集合体。最简单的计算机网络就只有两台计算机和连接它们的一条链路,即两个节点和一条链路。 

按连接

计算机网络就是通过线路互连起来的、自治的计算机集合,确切的说就是将分布在不同地理位置上的具有独立工作能力的计算机、终端及其附属设备用通信设备和通信线路连接起来,并配置网络软件,以实现计算机资源共享的系统。 [2] 

按需求

计算机网络就是由大量独立的、但相互连接起来的计算机来共同完成计算机任务。这些系统称为计算机网络(computer networks)。

网络类型分类

虽然网络类型的划分标准各种各样,但是从地理范围划分是一种大家都认可的通用网络划分标准。按这种标准可以把各种网络类型划分为局域网、城域网、广域网和互联网四种。局域网一般来说只能是一个较小区域内,城域网是不同地区的网络互联,不过在此要说明的一点就是这里的网络划分并没有严格意义上地理范围的区分,只能是一个定性的概念。下面简要介绍这几种计算机网络。

局域网

局域网(Local Area Network;LAN) 通常我们常见的“LAN”就是指局域网,这是我们最常见、应用最广的一种网络。局域网随着整个计算机网络技术的发展和提高得到充分的应用和普及,几乎每个单位都有自己的局域网,有的甚至家庭中都有自己的小型局域网。

城域网

城域网(Metropolitan Area Network;MAN) 这种网络一般来说是在一个城市,但不在同一地理小区范围内的计算机互联。这种网络的连接距离可以在10 ̄100公里,它采用的是IEEE802.6标准。MAN与LAN相比扩展的距离更长,连接的计算机数量更多,在地理范围上可以说是LAN网络的延伸。

广域网

广域网(Wide Area Network,WAN) 这种网络也称为远程网,所覆盖的范围比城域网(MAN)更广,它一般是在不同城市之间的LAN或者MAN网络互联,地理范围可从几百公里到几千公里。因为距离较远,信息衰减比较严重,所以这种网络一般是要租用专线,通过IMP(接口信息处理)协议和线路连接起来,构成网状结构,解决循径问题。这种城域网因为所连接的用户多,总出口带宽有限,所以用户的终端连接速率一般较低,通常为9.6Kbps-45Mbps 如:邮电部的CHINANET,CHINAPAC,和CHINADDN网。

无线网

随着笔记本电脑(notebook computer)和个人数字助理无线网( Personal Digital Assistant,PDA)等便携式计算机的日益普及和发展,人们经常要在路途中接听电话、发送传真和电子邮件阅读网上信息以及登录到远程机器等。然而在汽车或飞机上是不可能通过有线介质与单位的网络相连接的,这时候可能会对无线网感兴趣了。虽然无线网与移动通信经常是联系在一起的,但这两个概念并不完全相同。例如当便携式计算机通过PCMCIA卡接入电话插口,它就变成有线网的一部分。另一方面,有些通过无线网连接起来的计算机的位置可能又是固定不变的,如在不便于通过有线电缆连接的大楼之间就可以通过无线网将两栋大楼内的计算机连接在一起。

网络协议

网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。

例如,网络中一个微机用户和一个大型主机的操作员进行通信,由于这两个数据终端所用字符集不同,因此操作员所输入的命令彼此不认识。为了能进行通信,规定每个终端都要将各自字符集中的字符先变换为标准字符集的字符后,才进入网络传送,到达目的终端之后,再变换为该终端字符集的字符。当然,对于不相容终端,除了需变换字符集字符外还需转换其他特性,如显示格式、行长、行数、屏幕滚动方式等也需作相应的变换。

网络OSI七层协议

OSI是一个开放性的通信系统互连参考模型,它是一个定义得非常好的协议规范。OSI模型有7层结构,每层都可以有几个子层。 OSI的7层从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层 ;其中高层(即7、6、5、4层)定义了应用程序的功能,下面3层(即3、2、1层)主要面向通过网络的端到端,点到点的数据流

TCP/IP协议

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)体系结构是指能够在多个不同网络间实现的协议簇。该协议簇是在美国国防高级研究计划局(Defense Advanced Research Projects Agency,DARPA)所资助的实验性ARPARNET 分组交换网络、无线电分组网络和卫星分组网络上研究开发成功的。网络部分瘫痪时仍保持较强的工作能力和灵活性。这种应用环境导致了一系列协议的出现,从而使不同类型的终端和网络间能够进行有效通信。实际上,Internet已经成为全球计算机互联的主要体系结构,而TCP/IP协议是 Internet 的代名词,是将异种网络、不同设备互联起来,进行正常数据通信的格式和大家遵守的约定。

TCP/IP 协议包括两部分:传输控制协议和网际协议。TCP/IP 的通信任务组织成 5个相对独立的层次:应用层、传输层、互联网层(对应OSI的网络层)、网络接口层和物理层,其中网络接口层和物理层常称为物理网层。

五层因特网协议栈

因特网协议栈共有五层:应用层传输层网络层链路层物理层。不同于OSI七层模型这也是实际使用中使用的分层方式。

1、OSI、TCP/IP、五层协议的体系结构

OSI分层      (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

TCP/IP分层(4层):网络接口层、              网际层、运输层、                            应用层。

五层协议     (5层):物理层、数据链路层、网络层、运输层、                            应用层。

每一层的协议如下

物理层:RJ45、CLOCK、IEEE802.3    (中继器,集线器,网关)

数据链路:PPP、FR、HDLC、VLAN、MAC  (网桥,交换机)

网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)

传输层:TCP、UDP、SPX

会话层:NFS、SQL、NETBIOS、RPC

表示层:JPEG、MPEG、ASII

应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS

OSI分层 (7层)每层的作用如下

2,IP地址分类

  IP地址是32位的二进制数值,用于在TCP/IP通讯协议中标记每台计算机的地址。通常我们使用点式十进制来表示,如192.168.0.5等等。

  每个IP地址又可分为两部分。即网络号部分和主机号部分:网络号表示其所属的网络段编号,主机号则表示该网段中该主机的地址编号。按照网络规模的大小,IP地址可以分为A、B、C、D、E五类。

A类地址:以0开头,      第一个字节范围:0~127(1.0.0.0 - 126.255.255.255);

B类地址:以10开头,    第一个字节范围:128~191(128.0.0.0 - 191.255.255.255);

C类地址:以110开头,  第一个字节范围:192~223(192.0.0.0 - 223.255.255.255);

类别 网络号 /占位数 主机号 /占位数 用途

A(以0开头) 1~126 / 8 0~255 0~255 1~254 / 24 国家级

B(以10开头) 128~191 0~255 / 16 0~255 1~254 / 16 跨国组织

C(以110开头)192~223 0~255 0~255 / 24 1~254 / 8 企业组织

注意:

1)以下是留用的内部私有地址,Internet上没使用的地址

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

2)IP地址与子网掩码相与得到网络号

3)主机号,全为0的是网络号(例如:192.168.2.0),主机号全为1的为广播地址(192.168.2.255)

 

3,ARP是地址解析协议

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。

1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。

2:当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机 IP地址,源主机MAC地址,目的主机的IP 地址

3:当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。

4:源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。

注意:广播(255.255.255.255)发送ARP请求,单播发送ARP响应。

 

4,简单介绍几种协议

ICMP协议: 因特网控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息

TFTP协议: 是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。

HTTP协议: 超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统

NAT协议:网络地址转换属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术

DHCP协议:动态主机配置协议,是一种让系统得以连接到网络上,并获取所需要的配置参数手段,使用UDP协议工作。具体用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。

 

 5,TCP三次握手四次挥手

三次握手:

第一次握手:客户端发送syn包(seq=x)到服务器,并进入SYN_SEND(发送)状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(seq=y),即SYN+ACK包,此时服务器进入SYN_RECV(接收)状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED(已建立)状态,完成三次握手。

说明:
1)SYN和ACK是标志位(0/1)(ACK=1表明ack有效),seq是序列号,ack是确认号。2)给对方的确认方式就是把对方传来的seq+1并赋给ack。

TCP报文格式:

四次挥手:

第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可 以接受数据。

第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1。

第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。

第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。

说明:

1)SYN攻击 用众多伪造ip地址向服务器发送SYN=1(请求连接),让服务器处于SYN-RCVD状态,但都无法第三次握手(因为伪造ip不存在)

2)4次挥手中的FIN就相当于三次握手中的SYN。

3)序号seq,确认序号ack,确认标志位ACK作用还是一样的,就是确认作用(把seq加上1赋给ack,并把ACK置1)

4)为什么一个3次1个4次不一样?

因为两端的数据并不是同时发送完,所以两端谁发送完数据都需要自己告诉对方一次,并且对方确认一次。

 

6,TCP和UDP的区别

这是传输层的两个协议,先说一下传输层的两大功能:

  1. 复用:在发送端,多个应用进程公用一个传输层;
  2. 分用:在接收端,传输层会根据端口号将数据分给不同的应用进程。 

传输层和网络层的区别:

  1. 网络层为不同的主机提供通信服务,传输层为不同应用进程提供通信服务。
  2. 网络层只对报文头部进行差错检测,而传输层对整个报文进行差错检测。

UDP(User Data Protocol)用户数据报协议

  1. 无连接
  2. 不可靠(不能保证都送达)
  3. 面向报文(UDP数据传输单位是报文,不会对数据进行拆分和拼接操作,只是给上层传来的数据加个UDP头或者给下层来的数据去掉UDP头)
  4. 没有拥塞控制,始终以恒定速率发送数据
  5. 支持一对一、一对多、多对多、多对一
  6. 首部开销小,只有8字节

TCP(Transmission Control Protocol)传输控制协议

  1. 有连接
  2. 可靠的
  3. 面向字节流
  4. 全双工通信,TCP两端既可以作为发送端也可以作为接收端
  5. 连接的两端只能是两个端点,即一对一,不能一对多
  6. 至少20个字节,比UDP大的多

什么是TCP连接

TCP连接是一种抽象的概念,表示一条可以通信的链路。
每个TCP连接有且仅有两个端点,表示通信的双方,且双方在任意时刻都可以作为发送者和接受者。

什么是套接字

一条TCP连接的两端就是两个套接字。
套接字 = IP地址 :端口号
因此,TCP连接 = (套接字1,套接字2)= (IP1:端口号1,IP2:端口号2)

7, TCP对应的协议和UDP对应的协议

TCP对应的协议:

(1) FTP:定义了文件传输协议,使用21端口。

(2) Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。

(3) SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。

(4) POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。

(5)HTTP:是从Web服务器传输超文本到本地浏览器的传送协议。

UDP对应的协议:

(1) DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。

(2) SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。

(3) TFTP(Trival File Transfer Protocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。

8,DNS域名系统

  当DNS客户机需要在程序中使用名称时,它会查询DNS服务器来解析该名称。客户机发送的每条查询信息包括三条信息:包括:指定的DNS域名,指定的查询类型,DNS域名的指定类别。基于UDP服务,端口53. 该应用一般不直接为用户使用,而是为其他应用服务,如HTTP,SMTP等在其中需要完成主机名到IP地址的转换。

9,面向连接和非面向连接的服务的特点是什么?

  面向连接的服务,通信双方在进行通信之前,要先在双方建立起一个完整的可以彼此沟通的通道,在通信过程中,整个连接的情况一直可以被实时地监控和管理。

       非面向连接的服务,不需要预先建立一个联络两个通信节点的连接,需要通信的时候,发送节点就可以往网络上发送信息,让信息自主地在网络上去传,一般在传输的过程中不再加以监控。

10,TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?

答:建立连接的过程是利用客户服务器模式,假设主机A为客户端,主机B为服务器端。

(1)TCP的三次握手过程:主机A向B发送连接请求;主机B对收到的主机A的报文段进行确认;主机A再次对主机B的确认进行确认。

(2)采用三次握手是为了防止失效的连接请求报文段突然又传送到主机B,因而产生错误。失效的连接请求报文段是指:主机A发出的连接请求没有收到主机B的确认,于是经过一段时间后,主机A又重新向主机B发送连接请求,且建立成功,顺序完成数据传输。考虑这样一种特殊情况,主机A第一次发送的连接请求并没有丢失,而是因为网络节点导致延迟达到主机B,主机B以为是主机A又发起的新连接,于是主机B同意连接,并向主机A发回确认,但是此时主机A根本不会理会,主机B就一直在等待主机A发送数据,导致主机B的资源浪费。(这就是缺少第三次握手(A再给B确认))

(3)采用两次握手不行,原因就是上面说的实效的连接请求的特殊情况。

11,了解交换机、路由器、网关的概念,并知道各自的用途

1)交换机

在计算机网络系统中,交换机是针对共享工作模式的弱点而推出的。交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背 部总线上,当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部 交换矩阵迅速将数据包传送到目的端口。目的MAC若不存在,交换机才广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部地址表 中。

交换机工作于OSI参考模型的第二层,即数据链路层。交换机内部的CPU会在每个端口成功连接时,通过ARP协议学习它的MAC地址,保存成一张 ARP表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不 能划分网络层广播,即广播域。

交换机被广泛应用于二层网络交换,俗称“二层交换机”。

交换机的种类有:二层交换机、三层交换机、四层交换机、七层交换机分别工作在OSI七层模型中的第二层、第三层、第四层盒第七层,并因此而得名。

2)路由器

路由器Router)是一种计算机网络设备,提供了路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过 的路由路径(host到host之间的传输路径),这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行),这称为转 送。路由工作在OSI模型的第三层——即网络层,例如网际协议。

路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。 路由器与交换器的差别,路由器是属于OSI第三层的产品,交换器是OSI第二层的产品(这里特指二层交换机)。

3)网关

网关(Gateway),网关顾名思义就是连接两个网络的设备,区别于路由器(由于历史的原因,许多有关TCP/IP 的文献曾经把网络层使用的路由器(Router)称为网关,在今天很多局域网采用都是路由来接入网络,因此现在通常指的网关就是路由器的IP),经常在家 庭中或者小型企业网络中使用,用于连接局域网和Internet。 网关也经常指把一种协议转成另一种协议的设备,比如语音网关。

 

 

2011-08-17 12:27:10 21aspnet 阅读数 104031
  • 计算机网络技术基础(全套)

    本套餐主要内容包括计算机网络的基础知识,从计算机网络的基本概念入手,介绍基本通信理论、计算机网络的体系结构、TCP/IP、局域网的概念及组成、网络设计与组网技术、网络操作系统的操作与维护、计算机网络安全及...

    12课时 0分钟 271人学习 深博
    免费试看

 首先要说讲述计算机网络和TCP/IP的书很多。

 

先要学习网络知识才谈得上编程

讲述计算机网络的最经典的当属Andrew S.Tanenbaum的《计算机网络》第五版,这本书难易适中。

《计算机网络(第5版)》是国内外使用最广泛、最权威的计算机网络经典教材。

目前已经是第五版,本书作者80年代就开发出MINIX,是一个用于操作系统教学的类UNIX(的小型操作系统。而linux就是受其影响。。。。

 

第五版是2012年出的,也比较新。

 

作  者: (美)特南鲍姆,(美)韦瑟罗尔 著 严伟,潘爱民 译 丛 书 名:
出 版 社: 清华大学出版社ISBN:9787302274629出版时间:2012-03-01

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

《计算机网络:自顶向下方法(原书第4版) 》

作  者: (美)库罗斯 著 陈鸣 等 译 丛 书 名:计算机科学丛书出 版 社: 机械工业出版社ISBN:9787111165057出版时间:2009-01-01

 

《计算机网络系统方法(原书第4版)》

作  者: (美)彼得森(Peterson,L.L.),(美)戴维(Davie,B.S) 著 薛静锋 等 译 丛 书 名:计算机科学丛书出 版 社: 机械工业出版社ISBN:9787111251385出版时间:2009-02-01

 

如果觉得Tanenbaum的看的不够过瘾可以看这2本,这2本出版的时间和版面的差不多,各有特色,特别是“自顶向下”是一个很好的概念!

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

           了解网络知识看看上面的     开发必看下面的

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

如果说只是了解网络基础知识看看上面3本即可,但是要想做开发一定要看下面的

 

《TCP/IP详解》三卷本,《用TCP/IP进行网际互连》三卷本,《TCP/IP指南》+《IPv6》四卷本

其中TCP/IP详解的作者还写了另外2本经典著作,《Unix环境高级编程》,《Unix网络编程》

作者W.Richard Stevens个人网站  http://www.kohala.com/

大师作品部部经典,可惜1999年去另一个世界维护Unix了。。。。。。。。。

 

说明:搞Linux网络编程的,想学TCP/IP的一定要看大师W.Richard Stevens这六本书,基本上六本书看完基础也就搭好了。

 

 

 

 

W.Richard Stevens(1951-1999),国际知名的UNIX和网络专家,受人人尊敬的作家。他的著作有《UNIX网络编程》(两卷本),《UNIX环境高级编程》,《TCP/IP详解》(三卷本)等,同时他还是广受欢迎的教师和顾问。

  Stevens先生1951年生于赞比亚,早年,他就读于美国弗吉尼亚州的费什本军事学校,后获得密歇根大学学士、亚利桑那大学系统工程硕士和博士学位。他曾就职于基特峰国家天文台,从事计算机编程。

  Stevens先生不幸病逝于1999年9月1日,他的离去是计算机界的巨大损失。

  W. Richard Stevens对我们这些学习Unix/Linux的程序员的影响是巨大的,每每捧读老先生的书都会被感动,不仅被他那丰富的知识所折服,更是被他那一丝不苟,严谨治学的态度所倾倒。“他不清楚的,他下决心要弄明白。他知道的,他要努力传授给所有感兴趣的人们!”这就是我们的Stevens!一生能有其一部力作可谓无憾矣!而况七部乎?

  一位朋友说:“Stevens的书一定要全部认真地去读的。”我想他是对的。最后,对Stevens在天英灵说声:谢谢您!想必这时他正坐在上帝身边,继续从事他的写作。

W. Richard Stevens Biography
http://www.kohala.com/start/bio1.html

W. Richard Stevens' Home Page
http://www.kohala.com/start/

W. Richard Stevens on Wikipedia
http://en.wikipedia.org/wiki/W._Richard_Stevens

Guru of the Unix gurus
http://archive.salon.com/tech/feature/2000/09/01/rich_stevens/index.html

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

《用TCP/IP进行网际互连第一卷:原理、协议与结构(第五版)》

《用TCP/IP进行网际互连第二卷——设计、实现与内核》

《用TCP/IP进行网际互连第三卷:客户-服务器编程与应用(Linux/POSIX套接字版)》

说明:这个系列也是三卷本,和《TCP/IP详解》三卷本一样也是经典,区别是  网际互联 偏重理论而 详解偏重实际。

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

如果你看了上面2套TCP/IP的书6本还不尽兴,还有一套书可以作为提高或者查缺补漏

虽然与W.Richard Stevens TCP/IP详解 有一定的差距,但仍不失为下一代IPv6网络的参考工具书,值得收藏学习

 

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

《TCP/IP协议族(第4版)》

比TCP/IP详解要容易理解一些,并且图文并茂是本书的一大特色,还有就是举得例子比较多,有助于读者理解概念性的东西,给人感觉不是特别枯燥。总之,这本书适合初学者,而TCP/IP详解适合有一定网络方面基础的人。

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

 

《TCP/IP协议原理与应用(第3版)》

写的非常好,建议一定要买!可作入门,但即使是高手,也应看看,学习作者分析问题的方法和思想。其实是无数次印刷了,经典不能错过。

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

《TCP/IP高效编程 : 改善网络程序的44个技巧》

很明显属于技巧类的书,同样这本书很老,但是还是很有参考价值,这本书中大量出现Unix网络编程的提示,可以作为其补充。

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

《TCP/IP路由技术》

思科出的

这本书主要在讲内部路由协议,有RIP、RIPV2、RIPng、IGRP、EIGRP、OSPF、IS-IS协议,详实的描述了基本上现在主要的内部网关协议的工作原理,它们的优点与不足,以及配置方法(基于CISCO 路由器产品)和排错等。本书称不上非常的通俗,但是在有一定的基础的情况下还是比较容易看懂的。本书是世面上极少见的讲述内部网关路由技术的经典书籍,内容极为丰富。对于想清楚的了解内部网关协议的工作原理以及想探究网络通信事物的本质的人来说是一本不可或缺的好书。

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

《linux网络体系结构:linux内核中网络协议的设计与实现》

出版社: 清华大学出版社
装帧: 平装
出版年: 2006-7
又名: The Linux Network Architecture: Design and Implementation of Network Protocols in the Linux Kernel
书名: Linux网络体系结构
说明:翻译的很不好,建议看原版,可以下电子版。

一本在kernel实现网络功能的基础书籍,最好还是看英文版的,翻译的实在太烂了。有条件的还是看原版吧,没办法啊,中国的此类书籍基本上落后老美3-4年。结合linux源代码分析一书收获更多。一并把内核结构和各功能在内核中的关系也搞清楚了。

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

本人写的另外系列,配合一起看效果更好,因为C语言是语言,还需要到实际环境Linux中去用,而Linux环境下网络编程自然需要TCP/IP的知识:

 

C语言经典著作导读

Linux内核学习四库全书

2019-01-18 10:30:56 liyongke89 阅读数 2023
  • 计算机网络技术基础(全套)

    本套餐主要内容包括计算机网络的基础知识,从计算机网络的基本概念入手,介绍基本通信理论、计算机网络的体系结构、TCP/IP、局域网的概念及组成、网络设计与组网技术、网络操作系统的操作与维护、计算机网络安全及...

    12课时 0分钟 271人学习 深博
    免费试看

链接: https://pan.baidu.com/s/1-covfUP6LWWCMxAHQrDLlw 提取码: yicg 

网上都是需要积分的,这里分享给大家免费可以下载的地方.

 

2020-02-29 21:01:43 Jmilk 阅读数 3346
  • 计算机网络技术基础(全套)

    本套餐主要内容包括计算机网络的基础知识,从计算机网络的基本概念入手,介绍基本通信理论、计算机网络的体系结构、TCP/IP、局域网的概念及组成、网络设计与组网技术、网络操作系统的操作与维护、计算机网络安全及...

    12课时 0分钟 271人学习 深博
    免费试看

目录

前文列表

计算机网络基础 — 以太网
计算机网络基础 — 物理网络
计算机网络基础 — TCP/IP 网络模型
计算机网络基础 — Linux 内核网络协议栈
计算机网络基础 — 虚拟网络
计算机网络基础 — Linux 虚拟交换机
计算机网络基础 — Linux 路由器

前言

本文通过 OpenStack Neutron L3 Agent 的实现原理来描述 Linux 虚拟路由器的实现。

Neutron L3 agent 概述

Neutron L3 agent 服务,运行在 OpenStack 的网络节点上,实现了 3 层路由和 NAT 功能。利用 Linux Network Namespaces,可以创建多个具有重合 IP 地址段的虚拟路由器,每个虚拟路由器都具有自己的 namespace。

L3 agent的配置

Step 1. 在网络节点上,编辑 l3_agent.ini。
在这里插入图片描述
其中 [DEFAULT] section 的 interface_driver 是最重要的配置选项,用来指定 mechanism driver。Neutron 支持三种 interface_driver,如下:

  1. 使用 openvswitch:
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
  1. 使用 linuxbridge:
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
  1. 使用 null:
interface_driver = neutron.agent.linux.interface.NullDriver

Step 2. 启动 L3 agent service 进程,并检查是否运行正常。
在这里插入图片描述

Step 3. 创建虚拟路由器。

  1. 创建虚拟路由器,并添加网络接口
    在这里插入图片描述
    在这里插入图片描述

  2. 重复操作,添加两个 VLAN 网络到虚拟路由器,并在两个网络中分别创建一台虚拟机,拓扑效果如下:
    在这里插入图片描述

  3. 验证虚拟机 test1 与 test2 的连通性。
    在这里插入图片描述
    虚拟机 test1:IP 192.168.1.10, 网段192.168.1.0/24, 网关192.168.1.1
    虚拟机 test2:IP 192.168.2.12, 网段192.168.2.0/24, 网关192.168.2.1

虚拟路由器实现原理

创建虚拟路由器,并添加网络接口时,L3 agent 会在网络节点的 br-int 创建一个 Port qr-xxx,同时创建一个名为 qrouter-<\router-id> 的 Network namespace,并在 namespace 里,将网段 192.168.1.0/24 的网关(默认是 x.x.x.1)配置在 qr-xxx 网卡上。

  • 查看 br-int 上的 Port qr-xxx
    在这里插入图片描述

  • 查看 qrouter-<\router-id> namespace
    在这里插入图片描述
    在这里插入图片描述

  • 查看 namespace 中的网关配置信息
    在这里插入图片描述

  • 查看 qrouter-<\router-id> namespace 路由
    在这里插入图片描述

  • 查看虚拟机内部路由信息
    在这里插入图片描述

NOTE:

  1. Port qr-xxx 的命名使用的是 gateway_port 的 ID 的前 11 位
  2. 使用 namespace 是为了解决网络地址重叠的问题,从而达到虚拟的效果。
  3. 该网段的所有虚拟机上在启动时,都下发一条指向网关(默认是 x.x.x.1)的路由。

总结

可见,OpenStack Neutron L3 Agent 的虚拟路由器依旧是通过 Network namespace 来实现的,因为 Linux 本身就具有路由功能,再结合操作系统虚拟化技术,自然就可以虚拟出多个路由器了。例如:

在这里插入图片描述

2018-07-17 11:29:00 weixin_30341735 阅读数 12
  • 计算机网络技术基础(全套)

    本套餐主要内容包括计算机网络的基础知识,从计算机网络的基本概念入手,介绍基本通信理论、计算机网络的体系结构、TCP/IP、局域网的概念及组成、网络设计与组网技术、网络操作系统的操作与维护、计算机网络安全及...

    12课时 0分钟 271人学习 深博
    免费试看

OSI7层协议和TCP/IP4层网络协议

  第一层:物理层,定义各种物理设备的规范,如通信距离,接口大小等。

  第二层:数据链路层,基于mac地址通信是,数据报文封装和相应方式。

  第三层:网络层,基于IP地址通信过程的实现。定义IP地址,定义计算机之间的链接建立,终止维护等,数据包的传输路径选择等。相关协议:IP、ICMP、ARP、RARP。

  第四层:传输层,基于端口等进程之间的通信。定义发送端与接收端的链接技术(TCP,UDP),同时包括该技术的数据包格式,数据包的发送,流程的控制等,以确保各个资料数据可以正确无误的到达目的端。相关协议:TCP、UDP。

  第五层:会话层,建立会话完成通信。确定网络服务建立链接的确认。

  第六层:表示层,定义数据的表示格式,使数据格式标准化。如数据是否压缩,加密。

  第七层:应用层,如何实现真正的资源交换。将数据发送给应用程序,并最终展示给用户。相关协议:HTTP、FTP、SMIP等

FQDN:fully qyalified domain name,完全限定域名,即主机名

ARP通告:每一个新添加主机,均需一广播方式向本地主机通告自己的IP,mac信息。

TTL:time to live.缓存生存时间。作用,A主机挂掉后,B使用其IP,B会发通告是其他主机更新cache。

总结:本地通信全靠吼(广播),ARP(address resolve protocal)通过IP地址解析获得mac地址,通信是mac地址会被一次一次的重新封装,而IP地址始终不变。

   互联网通信是由多次本地通信实现。

 

MAC:Media Access Control 即媒体访问控制,或称为物理地址,硬件地址。

  MAC地址有48bits。

IP:

  ip地址格式:有32位,分4段,每段由8位2进制组成。

  IP地址取值范围:0.0.0.0 ~255.255.255.255

  IP地址分类:A,B,C,D,E五类

    A类:第一段为网络号,后三段为主机号

      网络号:0 0000000~0 11111111。1~127

        第一位0不变,后七位取任意值。

      主机号:每个网络中的主机数量

           2^24-2 个

      默认子网掩码:网络号全为1,主机号全为0。

        255.0.0.0

        作用:用于与IP地址按位“与”,求IP地址的网络地址。

      私网地址:10.0.0.0/255.0.0.0

    B类:前两段为网络号,后两段为主机号  

      网络号:10 000000~10 111111 ,128~191

        前两位10不变,后六位取任意值

      网络数:2^14

      每个网络的主机数:2^16 - 2

      默认子网掩码:255.255.0.0

      私网地址:172.16.0.0~172.31.0.0

    C类:前三段为网络号,最后一段为主机号

      网络号:110 00000~110 11111,192-223

        网络数:2^21

        每个网络中的主机数:2^8-2

        默认子网掩码:255.255.255.0

    D类:组播  

      1110 0000-1110 1111,224-239

    E类:科研

      240-255  

      

网桥:用来分隔冲突域,自动识别通信类型。内有MAC地址表。

交换机:switch

路由器:router

  路由表:

    静态指定

    动态学习:rip2,ospf

  路由条目:

    目标地址:下一条

    目标地址的类别:

      主机路由、网络路由、默认路由。0.0.0.0/0.0.0.0

总结:

  MAC:本地通信;范围:本地局域网

  IP:界定通信主机;范围:互联网

  PORT:界定进程;范围:主机

 

 

 

    

    

 

转载于:https://www.cnblogs.com/wxxjianchi/p/9321669.html