20170408_OSI参考模型与TCP/IP模型与输入URL地址按下enter键以后发生了什么?

20170408_OSI参考模型与TCP/IP模型


1、OSI参考模型(7层:自下而上):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

2、数据链路层:在概念上可以划分为2 层,一层是逻辑链路控制层LLC,一层是介质访问控制层MAC。数据链路层负责分配MAC地址。其中,MAC地址有6个字节48位,前24位是用来网卡的制造厂商,后24位用来标识全球范围内唯一的网卡。每个网卡只有一个MAC地址,但是可以对应多个IP地址。

3、网络层:负责对数据包进行路由选择和路由转发。提供直接相连的网络节点(一台机器)与网络节点(另一台机器)之间的通信,即点到点的通信。

网络层的协议:IP、ICMP、ARP、RARP。

4、传输层:是第一个提供端到端的,即进程到进程的服务层次。主要负责何时建立通信连接、何时断开通信连接以及维持通信连接等。提供进程与进程之间的逻辑通信,属于端到端的通信。

传输层的协议:TCP、UDP、SCTP。

5、应用层:为操作系统或网络应用程序提供网络的访问接口。

应用层的协议:FTP(25端口)、HTTP(80端口)、SMTP、SNMP、TELNET、DNS。

6、设备归属:

物理层的设备:中继器、集线器、网卡。

数据链路层的设备:网桥、交换机。

网络层的设备:路由器。

网络以上的中继系统:网关。


7、TCP/IP模型(4层:由下而上):网络接口层、网际层、传输层、应用层。

其中对应关系如下:另外,它们的功能也差不多可以对应起来。

网络接口层:对应OSI 的物理层、逻辑链路层。

网际层:对应OSI  的网络层。

传输层:对应OSI 的传输层。

应用层:对应OSI 的会话层、表示层、应用层。

8、TCP和UDP的区别:

  • TCP:传输控制协议,面向有连接的,进行传输数据之前要求事先建立好客户端与服务器之间的TCP通信连接。它提供数据包的顺序控制、流量控制、拥塞控制、重发控制等可靠性的控制服务。提供数据传输的单位是报文段,提供可靠传输。
  • TCP是全双工的,UDP也是全双工的。(全双工:在同一时间,既可以发送数据也可以接收数据。半双工通信:在同一时间要么发送数据,要么接收数据,两者只能干一样。)
  • TCP 和UDP 都可以使用 IPV4和 IPV6。
  • UDP:用户数据报协议,面向无连接的,数据传输单位是用户数据报,不保证可靠的传输,只是尽最大努力交付。——不能保证用户数据报最终到达目标主机,不保证各个数据包到达后的顺序,也不能保证每个数据包只到达一次。

9、邮件传输协议SMTP 、超文本传输协议HTTP、文件传输协议FTP 通常使用TCP。域名系统 DNS 通常使用UDP。

10、TCP连接的建立和终止:

参考博客:20170330_请说出TCP连接的三次握手和TCP关闭的四次握手

  • 执行主动关闭的那一端进入 TIME_WAIT 状态。留在 TINE_WAIT 状态的时间是 MSL 的 2 倍。

11、SOCKET的基本操作(6个函数):

  • socket()函数:int socket( int domain, int type, int protocol );成功时返回一个小的非负整数值,称之为套接口描述字,简称套接字。
  • bind()函数:int bind( int sockfd, const struct sockaddr *addr, socklen_t addrlen );负责把一个本地协议地址赋给套接口。
  • listen() 函数:int listen( int sockfd, int backlog);仅由TCP 服务器调用。第二个参数是指:后台等待连接队列的对打限制值。
  • connect()函数:int connect( int sockfd, const struct sockaddr *addr, socklen_t addrlen);第一个参数是客户端的套接字,第二个参数是指向套接口地址结构的指针,第三个参数是第二个参数中结构体的长度。
  • accept() 函数:int accept( int sockfd, struct sockaddr *addr, socklen_t *addrlen );如果这个函数成功,那么它的返回值是由内核自动生成的一个全新的套接口描述字,代表与所返回客户的TCP连接。
  • close()函数:int close( int fd);关闭套接口,并终止TCP连接。close  操作只会使得套接字的引用计数减去1,只有当其引用计数为0时,才会触发TCP客户端向服务器发出TCP 断开请求。
  • shuntdown函数:int shutdown( int sockfd, int howto);关闭一个TCP连接有两个方法,一个是close,一个是shutdown。
  • TCP的半关闭:TCP 提供了连接的一端在结束它的数据发送之后还能接收来自另一端数据的能力。半关闭是通过调用shutdown来代替close实现的。

12、考试题目:描述一个面向连接的客户端socket程序的主要步骤:

  • 加载套接字库;
  • 创建套接字 socket();
  • 向服务器发送连接请求  connect();
  • 和服务器端进行通信 read() 和 write();
  • 关闭套接字 close()。

13、以下是网络层的知识点:

14、IPV4  地址:连接在internet  中的每台主机或者路由器都有一个32 位的全球唯一的标识符,被称之为IP 地址。

IP 地址的描述方法有三种:分类的IP地址、子网的划分、CIDR

一、分类的IP地址

(1)分类的IP 地址有 5 类:A类 0 、B类 10 、C类 110 、D类 1110 、E类 11110 (尚未使用) 。

(2)每一个IP 地址都有两部分构成:网络标识 + 主机标识。网络标识:代表着这台主机所连接到的网络段。主机标识:代表作这台主机在网络中的地址。

(3)在每一类IP 地址中,有一些IP地址表示特殊用途,不作为IP 地址。

主机号全为0 :表示本网络的网络地址。

主机号全为1:表示本网络的广播地址。

网络号全为1、主机号全为0:表示该IP地址对应的子网掩码!

127.0.0.1 :表示网络本身的环路自检地址,表示任意主机本身。

32位全为0,即0.0.0.0,表示整个TCP/IP 网络。

32位全为1,即255.255.255.255,表示整个TCP/IP 网络的广播地址。

15、NET:网络地址转换:使用专用网络地址转换为公用的网络地址,从而对外隐藏了内部管理的IP 地址。私有IP 地址只用来LAN 连接,不用来WLAN 连接。

二、子网的划分

16、各类IP 地址默认的网络地址:

A类:255.0.0.0

B类:255.255.0.0

C类:255.255.255.0

使用子网划分时的地址格式:

A类:(8位) + (子网 x 位 )+ (主机24 - x 位)

B类:(16位) + (子网 x 位 )+ (主机24 - x 位)

C类:(24位) + (子网 x 位 )+ (主机24 - x 位)

三、CIDR:无分类编址

17、CIDR  使用了斜线记法,即 IP 地址 / 网络前缀所占的比特数。其中,网络前缀所占的比特数对应于网络号的部分,等效于子网掩码中连续1 的部分。

18、CIDR 地址块 192.168.10.0 / 20,所能包含的主机的最大地址范围是:

192.168.0.1——192.168.15.254


19、ARP、RARP、ICMP

(1)ARP:IP 地址到MAC 地址的映射。地址解析协议。每台主机单独存放一个从IP 地址到MAC 地址的映射表,叫做ARP表

主机和路由器动态维护此ARP表。

(2)RARP:MAC 地址到IP 地址的映射。

(3)ICMP:为了提高IP数据包成功交付的机会,在网络层使用了网际控制报文协议,来使得主机或路由器在数据包发送失败的情况下,可以报告差错和异常情况。

(4)PING 命令直接工作在应用层,它直接使用网络层的ICMP 协议,而没有使用传输层的TCP或UDP协议

ping www.taobao.com的时候,没有涉及的的网络协议是:(C )

A、ARP   B、DNS    C、TCP     D、ICMP


20、IPV6 是 128位的。使用冒号十六进制表示法。

21、HTTP 协议规定的状态码的含义:

所有状态码的第一个数字代表了响应的五种状态之一:

1xx:消息。其中,100 表示客户端应当继续发送请求。

2xx:成功。其中,200 表示请求已经成功。

3xx:重定向。选择的不是最优的路由路线,是次优的路由选择路线。

4xx:客户端错误。其中,400 表示语义有错误,当前请求无法被服务器理解。

5xx:服务器错误。


22、输入URL 地址、按下enter 键以后发生了什么?(考察!)

(1)Web 浏览器向 DNS 服务器查询 URL 所对应的 IP 地址,然后 DNS 返回查找到的 IP 地址给 Web 浏览器。

(2)Web 浏览器打开 TCP 连接,默认端口号 80 端口 ,并向 Web 服务器发送 HTTP 请求。

(3)如果页面发生跳转,服务器发回一个重定向响应,然后 Web 浏览器跟随这个重定向,再次发送 HTTP 请求。

否则,也就是页面不跳转的话,Web 服务器直接处理这个 HTTP 请求,并发回 HTML 响应。
(4)Web 浏览器接受请求的的页面源码,同时开始渲染这个返回的 HTML,并且发送嵌入到 HTML 中的对象请求。
(5)Web 浏览器进一步发送异步请求

(6)Web 浏览器关闭TCP 连接





你可能感兴趣的:(TCP/IP专栏)