TCP/IP
2016-03-26 21:10
435 查看
学习大纲:
转自http://www.nowcoder.com/discuss/3043TCP/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。
相关文章推荐
- HTTPS握手过程
- 一个简单的例子教你明白XMLHTTPRequest的原理
- linux网络管理命令
- IOS平台ASI框架 和 AFN框架 之Https通讯
- https基本原理
- Http请求特点
- 扯谈网络编程之Tcp SYN flood洪水攻击
- 浅谈Mental Ray渲染引擎并行性机制
- HtmlUnit、httpclient、jsoup爬取网页信息并解析
- HDU 3452 Bonsai(网络流之最小割)
- 一次误操作引起的linux系统网络故障 推荐
- 网络安全书籍
- Node.js之HTTP请求与响应
- 手写服务器httpserver_xml配置文件_sax解析基础应用JAVA205-206
- 【bzoj2816】【ZJOI2012】【网络】【lct】
- Http协议详解
- Http协议详解
- [bzoj2816][ZJOI2012]网络
- Java网络编程(TCP协议-服务端和客户端交互)
- BZOJ3651网络通信