您的位置:首页 > 理论基础 > 计算机网络

TCP/IP

2016-03-26 21:10 435 查看

学习大纲:

转自http://www.nowcoder.com/discuss/3043

TCP/IP

1. OSI与TCP/IP各层的结构与功能,都有哪些协议。

2. TCP与UDP的区别。

3. TCP报文结构。

4. TCP的三次握手与四次挥手过程,各个状态名称与含义,TIMEWAIT的作用。

5. TCP拥塞控制。

6. TCP滑动窗口与回退N针协议。

7. Http的报文结构。

8. Http的状态码含义。

9. Http request的几种类型。

10. Http1.1和Http1.0的区别

11. Http怎么处理长连接。

12. Cookie与Session的作用于原理。

13. 电脑上访问一个网页,整个过程是怎么样的:DNS、HTTP、TCP、OSPF、IP、ARP。

14. Ping的整个过程。ICMP报文是什么。

15. C/S模式下使用socket通信,几个关键函数。

16. IP地址分类。

17. 路由器与交换机区别。

18.IP地址的分类

19.ARP地址解析协议的工作原理

20.描述RARP逆地址解析协议

网络其实大体分为两块,一个TCP协议,一个HTTP协议,只要把这两块以及相关协议搞清楚,一般问题不大。

推荐书籍:《TCP/IP协议族》

更新中.....

一、OSI,TCP/IP,五层协议的体系结构,以及各层协议

来自牛客网:http://www.nowcoder.com/ta/review-network/review?tpId=33&tqId=21189&query=&asc=true&order=&page=1

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

每一层的作用如下:

物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)

数据链路层:将比特组装成帧和点到点的传递(帧Frame)

网络层:负责数据包从源到宿的传递和网际互连(包PackeT)

传输层:提供端到端的可靠报文传递和错误恢复(段Segment)

会话层:建立、管理和终止会话(会话协议数据单元SPDU)

表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)

应用层:允许访问OSI环境的手段(应用协议数据单元APDU)



四、TCP三次握手和四次挥手的全过程

三次握手:

1、客户端给服务器端发送SYN包(syn = j),处于SYN_SENT状态,等待服务器确认。
客户端:“服务端,你准备好没有(发送syn=j)?”
2、服务端接受到SYN包,由状态LISTEN状态变为SYN_RCVD状态,然后发送ACK包(ack=j+1)和SYN包(syn=k)
服务端:“我准备好了(发送ack=j+1),你准备好没有(发送syn=k)?”
3、客户端接受到ACK包(ack=j+1)和SYN包(syn=k),转为ESTABLISHED状态,然后向服务端发送ACK包(ack=k+1)
客户端:“我知道你准备好了(接受到ack=j+1),我也准备好了(发送ack=k+1)。”



四次挥手:(以客户端主动关闭为例)

1、客户端发送FIN(fin=m)以告知服务端,“我准备关闭了”,客户端进入FIN_WAIT1状态。
2、服务端接受到FIN包后,发送ACK(ack=m+1),进入CLOST_WAIT状态,但此时服务端数据可能还没发完,不能立即给服务端发送FIN包。客户端接受到ACK包之后,进入FIN_WAIT2状态。
3、服务端发送数据完毕,给客户端发送FIN包(fin=n),然后进入LAST_ACK状态,等待客户端响应。
4、客户端接受到FIN包,给服务端发送ACK包(ack=n+1),进入TIME_WAIT状态,如果2MLS之内没有再收到FIN的包,则关闭。服务端收到ACK包(ack=n+1),关闭CLOSED。

十八、IP地址的分类

A类IP地址:

一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围从1.0.0.0 到126.255.255.255。可用的A类网络有126个,每个网络能容纳1678万多个主机。

B类IP地址:

一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 。

C类IP地址:

一个C类IP地址由3个字节的网络地址和1个字节的主机地址组成,网络地址最高位必须是“110”,地址范围从192.0.0.0到223.255.255.255。可用的C类网络有4194303个,每个网络能容纳254个主机。

D类E类用途比较特殊,不予赘述

十九、ARP地址解析协议的工作原理

1、首先,每个主机会在自己的ARP缓冲区中建立一个ARP列表,以表示MAC地址和IP地址之间的关系。
2、当源主机1(IP1,MAC1)要发送数据给目的主机2(IP2,MAC2)的时候,会查找ARP列表寻找目的主机IP2对应的MAC地址,如果有,则直接根据MAC2发送数据;如果没有,则向同一网段所有主机发送ARP数据包,该数据包的内容包含源主机1的IP1、MAC1和目的主机IP2。
3、当所有该网段下的主机收到ARP数据包,解析之后分析ARP数据包中IP2是否为自己的IP地址,如果不是,则忽略;如果是,则取出源主机的IP1和MAC1,写入自己的ARP列表,然后将自己的MAC地址写入ARP响应包发回源主机。
4、源主机收到并解析ARP响应包,将IP2和MAC2写入自己的ARP列表,然后根据此信息发送数据。如果一直没有收到ARP响应包,说明ARP查询失败。
PS:广播发送ARP请求,单播发送ARP响应。

二十、描述RARP逆地址解析协议
显然,这是由MAC硬件地址到IP地址的映射,主要用于无盘工作站,因为其IP无法保存,因此需要广播RARP请求包。只有RARP服务器才可以接受请求包,一般网络中会有多个RARP服务器,为了避免多个RARP服务器同时回复无盘工作站,都会为主机分配主RARP服务,主RARP率先回应,其他服务器都要等待主RARP服务器发送响应之后才开始发送,当然请求方一般都会接受最先的响应,当主RARP不作回应,请求方会在此广播,此时其他RARP服务器就会发送响应。RARP服务器会将MAC地址和IP地址都写入列表,为以后使用。请求方得到响应之后,会解析响应包,得到IP。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: