1.简单介绍OSI的七层网络模型,画图描绘,描述主要几层的各自作用。
OSI(Open System Interconnect,开放系统互连)七层网络模型。
TCP/IP四层模型和OSI七层模型
表1-1是 TCP/IP四层模型和OSI七层模型对应表。我们把OSI七层网络模型和Linux TCP/IP四层概念模型对应,然后将各种网络协议归类。
表1-1 TCP/IP四层模型和OSI七层模型对应表
OSI七层网络模型 |
Linux TCP/IP四层概念模型 |
对应网络协议 |
应用层(Application) |
应用层 |
TFTP, FTP, NFS, WAIS |
表示层(Presentation) |
Telnet, Rlogin, SNMP, Gopher |
|
会话层(Session) |
SMTP, DNS |
|
传输层(Transport) |
传输层 |
TCP, UDP |
网络层(Network) |
网际层 |
IP, ICMP, ARP, RARP, AKP, UUCP |
数据链路层(Data Link) |
网络接口 |
FDDI, Ethernet, Arpanet, PDN, SLIP, PPP |
物理层(Physical) |
IEEE 802.1A, IEEE 802.2到IEEE 802.11 |
1.网络接口
网络接口把数据链路层和物理层放在一起,对应TCP/IP概念模型的网络接口。对应的网络协议主要是:Ethernet、FDDI和能传输IP数据包的任何协议。
2.网际层
网络层对应Linux TCP/IP概念模型的网际层,网络层协议管理离散的计算机间的数据传输,如IP协议为用户和远程计算机提供了信息包的传输方法,确保信息包能正确地到达目的机器。这一过程中,IP和其他网络层的协议共同用于数据传输,如果没有使用一些监视系统进程的工具,用户是看不到在系统里的IP的。网络嗅探器Sniffers是能看到这些过程的一个装置(它可以是软件,也可以是硬件),它能读取通过网络发送的每一个包,即能读取发生在网络层协议的任何活动,因此网络嗅探器Sniffers会对安全造成威胁。重要的网络层协议包括ARP(地址解析协议)、ICMP(Internet控制消息协议)和IP协议(网际协议)等。
3.传输层
传输层对应Linux TCP/IP概念模型的传输层。传输层提供应用程序间的通信。其功能包括:格式化信息流;提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认信息,如果分组丢失,必须重新发送。传输层包括TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议),它们是传输层中最主要的协议。TCP建立在IP之上,定义了网络上程序到程序的数据传输格式和规则,提供了IP数据包的传输确认、丢失数据包的重新请求、将收到的数据包按照它们的发送次序重新装配的机制。TCP 协议是面向连接的协议,类似于打电话,在开始传输数据之前,必须先建立明确的连接。UDP也建立在IP之上,但它是一种无连接协议,两台计算机之间的传输类似于传递邮件:消息从一台计算机发送到另一台计算机,两者之间没有明确的连接。UDP不保证数据的传输,也不提供重新排列次序或重新请求的功能,所以说它是不可靠的。虽然UDP的不可靠性限制了它的应用场合,但它比TCP具有更好的传输效率。
4.应用层
应用层、表示层和会话层对应Linux TCP/IP概念模型中的应用层。应用层位于协议栈的顶端,它的主要任务是应用。一般是可见的,如利用FTP(文件传输协议)传输一个文件,请求一个和目标计算机的连接,在传输文件的过程中,用户和远程计算机交换的一部分是能看到的。常见的应用层协议有:HTTP、FTP、Telnet、SMTP和Gopher等。应用层是Linux网络设定最关键的一层。Linux服务器的配置文档主要针对应用层中的协议。TCP/IP模型各个层次的功能和协议如表1-2所示。
表1-2 TCP/IP模型各个层次的功能和协议
层次名称 |
功 能 |
协 议 |
网络接口 (Host-to-Net Layer) |
负责实际数据的传输,对应OSI参考模型的下两层 |
HDLC(高级链路控制协议) PPP(点对点协议) SLIP(串行线路接口协议) |
网际层 (Inter-network Layer) |
负责网络间的寻址 数据传输,对应OSI参考模型的第三层 |
IP(网际协议) ICMP(网际控制消息协议) ARP(地址解析协议) RARP(反向地址解析协议) |
传输层 (Transport Layer) |
负责提供可靠的传输服务,对应OSI参考模型的第四层 |
TCP(控制传输协议) UDP(用户数据报协议) |
层次名称 |
功 能 |
协 议 |
应用层 (Application Layer) |
负责实现一切与应用程序相关的功能,对应OSI参考模型的上三层 |
FTP(文件传输协议) HTTP(超文本传输协议) DNS(域名服务器协议) SMTP(简单邮件传输协议) NFS(网络文件系统协议) |
说明 TCP/IP与OSI最大的不同在于OSI是一个理论上的网络通信模型,而TCP/IP则是实际运行的网络协议。
2.举例服务器常用端口及相对的服务
HTTP服务器,默认的端口号为80/tcp;
Telnet(不安全的文本传送)远程登录协议,默认端口号为23/tcp;
FTP,(文件传输)协议默认的端口号为21/tcp;
SSH(安全登录)、SCP(文件传输)、端口重定向,默认的端口号为22/tcp;
3.说明服务器设置不同端口的意义
各种服务采用不同的端口可以分别提供不同的服务,比如:通常TCP/IP协议规定Web采用80号端口,FTP采用21号端口等,而邮件服务器是采用25号端口。通过不同端口,计算机就可以与外界进行互不干扰的通信。
服务器端口数最大可以有65535个,但是实际上常用的端口才几十个,黑客程序可以采用某种方法,定义出一个特殊的端口来达到入侵的目的。木马程序在入侵前是先通过某种手段在一台个人计算机中植入一个程序,打开某个(些)特定的端口,俗称"后门"(BackDoor),使这台计算机变成一台开放性极高(用户拥有极高权限)的FTP服务器,然后从后门就可以达到侵入的目的。
4.Windows系统下常用的网络命令,
用一条命令实现:将远程主机C盘映射为自己的F盘
5.L/Unix系统下常用的网络命令。
hostname
代码示例:
hostname 没有选项,显示主机名字
hostname –d 显示机器所属域名
hostname –f 显示完整的主机名和域名
hostname –i 显示当前机器的ip地址
ping
ping 将数据包发向用户指定地址。当包被接收。目标机器发送返回数据包. ping 主要有两个作用
1. 用来确认网络连接是畅通的。
2. 用来查看连接的速度信息。
如果 ping www.jbxue.com 它将返回它的ip地址 。你可以通过 ctrl+C 来停止命令。
ifconfig
查看用户网络配置。它显示当前网络设备配置。对于需要接收或者发送数据错误查找,这个工具极为好用。
iwconfig
iwconfig 工具与 ifconfig 和ethtool类似。是用于无线网卡的 . 你可以用他查看设置基本的Wi-Fi 网络信息,例如 SSID,channel和encryption.还有其他很多配置你也可以查看和修改,, 包括 接收灵敏度, RTS/CTS, 发送数据包的分片大小,以及无线网卡的重传机制
nslookup
nslookup 这个命令在 有ip地址时,可以用这个命令来显示主机名,可以找到给定域名的所有ip地址。而你必须连接到互联网才能使用这个命令
例子. nslookup blogger.com
你也可以使用 nslookup 从ip获得主机名或从主机名获得ip。
traceroute
一个方便的工具。可用来查看数据包在提交到远程系统或者网站时候所经过的路由器的IP地址、跳数和响应时间。同样你必须链接到互联网才能使用这个命令
finger
查看用户信息。显示用户的登录名字、真实名字以及登录终端的名字和登录权限。这是unix一个很老的命令,现在已很少使用了
telnet
通过telnet协议连接目标主机,如果telnet连接可以在任一端口上完成即代表着两台主机间的连接良好。
telnet hostname port – 使用指定的端口telnet主机名。这通常用来测试主机是否在线或者网络是否正常。
ethtool
ethtool允许你查看和更改网卡的许多设置(不包括Wi-Fi网卡)。你可以管理许多高级设置,包括tx/rx、校验及网络唤醒功能。下面是一些你可能感兴趣的基本命令:
显示一个特定网卡的驱动信息,检查软件兼容性时尤其有用。
ethtool -i
启动一个适配器的指定行为,比如让适配器的LED灯闪烁,以帮助你在多个适配器或接口中标识接口名称:
ethtool -p
显示网络统计信息:
ethtool -s
设置适配器的连接速度,单位是Mbps:
代码示例:
ethtool speed <10|100|1000>
netstat
发现主机连接最有用最通用的Linux命令。你可以使用”netstat -g”查询该主机订阅的所有多播组(网络)
代码示例:
netstat -nap | grep port 将会显示使用该端口的应用程序的进程id
netstat -a or netstat –all 将会显示包括TCP和UDP的所有连接
netstat –tcp or netstat –t 将会显示TCP连接
netstat –udp or netstat –u 将会显示UDP连接
netstat -g 将会显示该主机订阅的所有多播网络
6.ARP协议的用途,在哪一层上会使用arp ?
在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
OSI模型把网络工作分为七层,IP地址在OSI模型的第三层,MAC地址在第二层,彼此不直接打交道。在通过以太网发送IP数据包时,需要先封装第三层(32位IP地址)、第二层(48位MAC地址)的报头,但由于发送时只知道目标IP地址,不知道其MAC地址,又不能跨第二、三层,所以需要使用地址解析协议。使用地址解析协议,可根据网络层IP数据包包头中的IP地址信息解析出目标硬件地址(MAC地址)信息,以保证通信的顺利进行。
7.如何实现透明传输?
"透明"传输表示不用关心下层协议的传输,比如你要寄信,只需要写地址交给邮局就行了,然后对方就能收到你的信,但是中途经过多少车站,火车,邮递员,你根本不知道,所以对于你来说邮递的过程是透明的。
“透明”是一个重要术语,表示:某一个实际存在的事物看起来却好像不存在一样。
8.阻塞方式和非阻塞方式,阻塞connect与非阻塞connect。
9.路由表的内容。
在计算机网络中,路由表或称路由择域信息库(RIB)是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。
路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)。
路由表中含有网络周边的拓扑信息。路由表建立的主要目标是为了实现路由协议和静态路由选择。
10.分组转发算法。
IP数据报的首部中没有地方可以用来指明“下一跳路由器的 IP 地址”。
(1)首先从IP数据报首部提取出目的主机的IP地址D,得出其所在的网络N。
(2)若N就是与此路由器直接相连的某个网络,则进行直接交付,不需要经过其它的路由器进行转发,直接把数据报交付给目的主机。否则就执行(3)
(3)若路由表中有目的地址为D的特定主机路由,则把数据报传给路由表中所指明的下一跳路由器。否则执行(4)
(4)若路由表中有到达网络N的路由,则把数据报传给路由表中所指明的下一跳路由器。否则执行(5)
(5)若路由表中有一个默认路由,则把数据报传给默认路由所指明的默认路由器。
否则执行(6)
(6)报告转发分组出错。
11.TCP 报文的格式,字段的意义。
12.HTTP基本格式。
13.TCP的流量控制和拥塞控制实现。
TCP的流控制方案是采用滑动窗口协议来进行的。
14.TCP通过哪些措施,保证传输可靠?
15.组播和广播的概念。
在IPv4网络中,主机可采用的通信方式有如下三种:
1、单播:单台主机与单台主机之间的数据通信
2、广播:单台主机向网络中所有主机发送数据包的过程
3、组播:单台主机向选定的一组主机发送数据包的过程
单播、广播以及组播的用途各不相同,并且使用不同的IP地址做为目的地址。
16.Ping协议的实现原理,ping的命令格式。
ping 程序是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接。ping 使用的是ICMP协议,它发送icmp回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。ICMP协议通过IP协议发送的,IP协议是一种无连接的,不可靠的数据包协议。
ping命令的工作原理是:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文一模一样地传回给发送者,这有点象潜水艇声纳系统中使用的发声装置。
17.子网划分的概念,子网掩码。
子网划分定义:Internet组织机构定义了五种IP地址,有A、B、C三类地址。A类网络有126个,每个A类网络可能有16777214台主机,它们处于同一广播域。而在同一广播域中有这么多结点是不可能的,网络会因为广播通信而饱和,结果造成16777214个地址大部分没有分配出去。可以把基于每类的IP网络进一步分成更小的网络,每个子网由路由器界定并分配一个新的子网网络地址,子网地址是借用基于每类的网络地址的主机部分创建的。划分子网后,通过使用掩码,把子网隐藏起来,使得从外部看网络没有变化,这就是子网掩码。
18.IP地址的分类,如何划分的,及会计算各类地址支持的主机数。
IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。
19.DNS的概念,用途。
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。
DNS协议运行在UDP协议之上,使用端口号53。
20.TCP与UDP的概念,相互的区别及优劣。
OSI 和 TCP/IP 模型在传输层定义两种传输协议:TCP(或传输控制协议)和 UDP(或用户数据报协议)。
UDP
UDP 与 TCP 的主要区别在于 UDP 不一定提供可靠的数据传输。事实上,该协议不能保证数据准确无误地到达目的地。UDP 在许多方面非常有效。当某个程序的目标是尽快地传输尽可能多的信息时(其中任意给定数据的重要性相对较低),可使用 UDP。ICQ 短消息使用 UDP 协议发送消息。
许多程序将使用单独的TCP连接和单独的UDP连接。重要的状态信息随可靠的TCP连接发送,而主数据流通过UDP发送。
TCP
TCP的目的是提供可靠的数据传输,并在相互进行通信的设备或服务之间保持一个虚拟连接。TCP在数据包接收无序、丢失或在交付期间被破坏时,负责数据恢复。它通过为其发送的每个数据包提供一个序号来完成此恢复。记住,较低的网络层会将每个数据包视为一个独立的单元,因此,数据包可以沿完全不同的路径发送,即使它们都是同一消息的组成部分。这种路由与网络层处理分段和重新组装数据包的方式非常相似,只是级别更高而已。
为确保正确地接收数据,TCP要求在目标计算机成功收到数据时发回一个确认(即 ACK)。如果在某个时限内未收到相应的 ACK,将重新传送数据包。如果网络拥塞,这种重新传送将导致发送的数据包重复。但是,接收计算机可使用数据包的序号来确定它是否为重复数据包,并在必要时丢弃它。
TCP与UDP的选择
如果比较UDP包和TCP包的结构,很明显UDP包不具备TCP包复杂的可靠性与控制机制。与TCP协议相同,UDP的源端口数和目的端口数也都支持一台主机上的多个应用。一个16位的UDP包包含了一个字节长的头部和数据的长度,校验码域使其可以进行整体校验。(许多应用只支持UDP,如:多媒体数据流,不产生任何额外的数据,即使知道有破坏的包也不进行重发。)
很明显,当数据传输的性能必须让位于数据传输的完整性、可控制性和可靠性时,TCP协议是当然的选择。当强调传输性能而不是传输的完整性时,如:音频和多媒体应用,UDP是最好的选择。在数据传输时间很短,以至于此前的连接过程成为整个流量主体的情况下,UDP也是一个好的选择,如:DNS交换。把SNMP建立在UDP上的部分原因是设计者认为当发生网络阻塞时,UDP较低的开销使其有更好的机会去传送管理数据。TCP丰富的功能有时会导致不可预料的性能低下,但是我们相信在不远的将来,TCP可靠的点对点连接将会用于绝大多数的网络应用。
TCP协议和UDP协议特性区别总结:
1. TCP协议在传送数据段的时候要给段标号;UDP协议不
2. TCP协议可靠;UDP协议不可靠
3. TCP协议是面向连接;UDP协议采用无连接
4. TCP协议负载较高,采用虚电路;UDP采用无连接
5. TCP协议的发送方要确认接收方是否收到数据段(3次握手协议)
6. TCP协议采用窗口技术和流控制(特别)