3-9在家准备面试

1.OSI七层参考模型

从下往上是:物理层--数据链路层--网络层---传输层---会话层---表示层---应用层。解释一下各层的用处

1.物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。

2.数据链路层:定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输

3.网络层:在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。

4.传输层:定义了一些传输数据的协议和端口号(WWW端口80等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据), UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段。

5.会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)。

6.表示层:可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码(EBCDIC),而另一台则使用美国信息交换标准码(ASCII)来表示相同的字符。如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换

7.是最靠近用户的OSI层。这一层为用户的应用程序(例如电子邮件文件传输终端仿真)提供网络服务。

2.TCP/IP四层参考模型

TCP/IP是一组用于实现网络互连的通信协议。Internet网络体系结构以TCP/IP为核心。基于TCP/IP的参考模型将协议分成四个层次,它们分别是:网络访问层、网际互连层、传输层主机到主机)、和应用层
1.应用层 对应于OSI参考模型的高层,为用户提供所需要的各种服务,例如:FTP、Telnet、DNS、SMTP等. 
2.传输层 对应于OSI参考模型的传输层,为 应用层 实体提供端到端的通信功能。该层定义了两个主要的协议: 传输控制协议 (TCP)和 用户数据报协议 (UDP). TCP协议提供的是一种可靠的、面向连接的数据传输服务;而UDP协议提供的则是不可靠的、无连接的数据传输服务. 
3.网际互联层: 网际互联层对应于OSI参考模型的 网络层 ,主要解决 主机 到主机的通信问题。该层有四个主要协议: 网际协议 (IP)、 地址解析协议 (ARP)、互联网组管理协议(IGMP)和互联网控制 报文 协议(ICMP)。
IP协议是网际互联层最重要的协议,它提供的是一个不可靠、无连接的数据报传递服务。
4.网络访问层(即主机-网络层): 网络访问层与 OSI参考模型 中的 物理层 数据链路层 相对应。事实上,TCP/IP本身并未定义该层的协议,而由参与互连的各网络使用自己的 物理层 数据链路层 协议,然后与TCP/IP的网络访问层进行连接。 TCP/IP是一组用于实现网络互连的 通信协议 。Internet 网络体系结构 以TCP/IP为核心。基于TCP/IP的参考模型将协议分成四个层次,它们分别是:网络访问层、网际互连层、 传输层 主机 到主机)、和 应用层 。。
3.OSI参考模型和TCP/IP参考模型的比较

共同点

(1)OSI参考模型和TCP/IP参考模型都采用了层次结构的概念,
(2)都能够提供面向连接和无连接两种通信服务机制;

不同点

(1)前者是七层模型,后者是四层结构
(2)对可靠性要求不同(后者更高)
  (3) OSI模型是在协议开发前设计的, 具有通用性.TCP/IP是先有协议集然后建立模型, 不适用于非TCP/IP网络.
(4)实际市场应用不同(OSI模型只是理论上的模型,并没有成熟的产品,而TCP/IP已经成为“实际上的国际标准”)
4.简单解释一下MFC
参照http://baike.baidu.com/view/10918.htmMFC是微软以c++类的方式封装windowsAPI,其中包含了一个应用程序框架,其中包含大量windows的句柄封装类,和内建控件和组件封装类,vc++是进行windowd程序开发的sdk,而MFC是在vc++之上建立的辅助开发包。具体的看看这个网站,还是很复杂的东西。
5.TCP和udp数据包格式

TCP (Transport Control Protocol)传输控制协议:

1、TCP数据包的分组格式:

A,源端口:标识源端应用进程。

B, 目的端口:标识目的端应用进程。

C, 序号:在SYN标志未置位时,该字段指示了用户数据区中第一个字节的序号;在SYN标志置位时,该字段指示的是初始发送的序列号。

D,确认号:用来确认本端TCP实体已经接收到的数据,其值表示期待对端发送的下一个字节的序号,实际上告诉对方,在这个序号减1以前的字节已正确接收。

E, 数据偏移:表示以32位字为单位的TCP分组头的总长度,用于确定用户数据区的起始位置。

F, URG:紧急指针字段有效。

G,ACK:确认好有效。

H,PSH:Push操作。TCP分组长度不定,为提高传输速率,往往要收集到足够的数据后才发送。这种方式不适合实时性要求很高的应用,因此,TCP提供“Push”操作,以强迫传输当前的数据,不必等待缓冲区满才传输。

I,   RST:连接复位,重新连接。

J,  SYN:同步序号,该比特置位表示连接建立分组。

K,FIN:字符串发送完毕,没有其它数据需要发送,该比特置位表示连接确认分组。

L, 窗口:单位是字节,指明该分组的发送端愿意接收的从确认字段中的值开始的字节数量。

M,    校验和:对TCP分组的头部和数据进行校验。

N,紧急指针:指出窗口中紧急数据的位置(从分组序号开始的正向位移,指向紧急数据的最后一个字节),这些紧急数据应优先于其它的数据进行传输。

O,任选项:用于处理一些特殊情况。目前被正式使用的选项字段可用于定义通信过程中的最大分组长度,只能在连接建立时使用。

P, 填充:用于保证任选项为32bit的整数倍。

 

 

 2、TCP三次握手、四次断开的机制:

   三次握手:

第一次握手:客户端发送一个SYN(包含有同步序列号的标志位的数据段和通信请求)给服务器,然后等待服务器的回发确认信息

第二次握手:服务器发送一个SYN-ACK给客户端,确认已经收到客户端发来的信息

第三次握手:客户端接收到服务器发来的确认信息后,再回馈一个ACK给服务器,此时就可与服务器建立可靠的连接

 

ACK:TCP数据包首部中的确认标志,对已接收到的TCP报文进行确认。

SYN:SYN是TCP/IP建立连接时使用的握手信号。

 

   四次断开:

因为TCP/IP的连接是全双工的,所以每个方向都要单独进行关闭。

每当TCP单方向上的数据传输过后,都会再送一个FIN过去,告诉对方我这方向上的数据将要关闭了,请你做好准备哦。当对方接到FIN后就会通知应用层TCP连接已经终止了这一方向上的数据的传输。发送FIN通常是应用层进行关闭的结果。

 

第一次:客户端向服务器发送数据后,将FIN置1,告诉它我将要关闭这一方向上的数据连接。

第二次:服务器接受到FIN后,关闭该方向上的数据的连接。将ACK置1,告诉客户端我已经接收到你的信息并以处理。

第三次:向客户端申请反方向上的数据连接的断开。将FIN置1。

第四次:客户端接到服务器发来的申请,将ACK置1,双方同时关闭连接。

 

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

UDP首部字段由4个部分组成,其中两个是可选的。各16bit的来源端口和目的端口用来标记发送和接受的应用进程。因为UDP不需要应答,所以来源端口是可选的,如果来源端口不用,那么置为零。在目的端口后面是长度固定的以字节为单位的长度域,用来指定UDP数据报包括数据部分的长度,长度最小值为8byte。首部剩下地16bit是用来对首部和数据部分一起做校验和(Checksum)的,这部分是可选的,但在实际应用中一般都使用这一功能。



3、与TCP包的不同之处:

   无需三次握手四次断开,传输速度相对于TCP极快,不确定性,甚至可以不需要应答,没有TCP数据包的安全性,有丢包现象。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值