OSI中的层
| 功能 | TCP/IP协议族 |
---|---|---|
应用层 | 文件传输,电子邮件,文件服务,虚拟终端 | TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 |
表示层 | 翻译、加密、压缩 | 没有协议 |
会话层 | 对话控制、建立同步点(续传) | 没有协议 |
传输层 | 端口寻址、分段重组、流量、差错控制 | TCP,UDP |
网络层 | 逻辑寻址、路由选择 | IP,ICMP,OSPF,EIGRP,IGMP |
数据链路层 | 成帧、物理寻址、流量,差错,接入控制 | SLIP,CSLIP,PPP,MTU |
物理层 | 设置网络拓扑结构、比特传输、位同步 | ISO2110,IEEE802,IEEE802.2 |
TCP/IP
|
OSI
|
---|---|
应用层
|
应用层
表示层
会话层
|
主机到主机层(TCP)(又称传输层)
|
|
网络层(IP)(又称互联层)
|
|
网络接口层(又称链路层)
|
数据链路层
|
物理层
|
TCP/IP 由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台电脑规定一个地址。
物理层的主要网络设备为中继器、集线器
数据链路层主要设备为以太网交换机
网络层的设备主要有路由器、三层交换机等
网络层协议负责的是提供主机间的逻辑通信
运输层协议负责的是提供进程间的逻辑通信
IP协议: 这种不可靠的、无连接的传送机制称为internet协议,支持网间互连的数据报协议
IP协议是网络层的协议,它是为了实现相互连接的计算机进行通信设计的协议,它实现了自动路由功能,即自动寻径功能。TCP是传输层的协议,它向下屏蔽IP协议的不可靠传输的特性,向上提供一种面向连接的、可靠的点到点数据传输。TCP在可靠性和安全性上等更有保证。UDP也是传输层协议,它提供的是一种非面向连接的,不可靠的数据传输,这主要是有些应用需要更快速的数据传输,比如局域网内的大多数文件传输都是基于UDP的。UDP在传输速率上更快,开销更小
IP协议三个定义:
(1)IP定义了在TCP/IP互联网上数据传送的基本单元和数据格式。
(2)IP软件完成路由选择功能,选择数据传送的路径。
(3)IP包含了一组不可靠分组传送的规则,指明了分组处理、差错信息发生以及分组的规则。
IP地址分为五类,网络号+主机号
(五类)
(IPV4)
服务 |
端口号 |
服务 |
端口号 |
FTP |
21 |
SSH |
22 |
telnet |
23 |
SMTP |
25 |
Domain(域名服务器) |
53 |
HTTP |
80 |
POP3 |
110 |
NTP(网络时间协议) |
123 |
MySQL数据库服务 |
3306 |
Shell或 cmd |
514 |
POP-2 |
109 |
SQL Server |
1433 |
SNMP |
161 |
|
|
ICMP是Internet Control Message Protocol,因特网控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由器是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。ICMP报文有两种:差错报告报文和询问报文
HTTP超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统
网桥是一个局域网与另一个局域网之间建立连接的桥梁
DHCP动态主机配置协议,是一种让系统得以连接到网络上,并获取所需要的配置参数手段
网络接口卡(网卡)的功能?
(1)进行串行/并行转换。
(2)对数据进行缓存。
(3)在计算机的操作系统安装设备驱动程序。
(4)实现以太网协议。
以太网帧的格式
目的地址 |
源地址 |
类型 |
数据 |
FCS |
交换机和路由器分别的实现原理是什么
交换机用于局域网,利用主机的MAC地址进行数据传输,而不需要关心IP数据包中的IP地址,它工作于数据链路层。路由器识别网络是通过IP数据包中IP地址的网络号进行的,所以为了保证数据包路由的正确性,每个网络都必须有一个唯一的网络号。路由器通过IP数据包的IP地址进行路由的(将数据包递交给哪个下一跳路由器)。路由器工作于网络层。由于设备现在的发展,现在很多设备既具有交换又具有路由功能,两者的界限越来越模糊
ARP是地址解析协议
(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查询失败。
广播发送ARP请求,单播发送ARP响应
DNS
DNS客户机需要在程序中使用名称时,它会查询DNS服务器来解析该名称。客户机发送的每条查询信息包括三条信息:包括:指定的DNS域名,指定的查询类型,DNS域名的指定类别。基于UDP服务,端口53. 该应用一般不直接为用户使用,而是为其他应用服务,如HTTP,SMTP等在其中需要完成主机名到IP地址的转换
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的资源浪费。
(3)采用两次握手不行,原因就是上面说的实效的连接请求的特殊情况。
4次挥手
(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送(报文段4)。
(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5)。和SYN一样,一个FIN将占用一个序号。
(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A(报文段6)。
(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1(报文段7)
1.为什么建立连接协议是三次握手,而关闭连接却是四次握手呢?
这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的连接请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可能未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的