一、简述TCP/UDP的区别
TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。
两者的区别大致如下
- TCP面向连接,UDP面向非连接即发送数据前不需要建立链接
- TCP提供可靠的服务(数据传输),UDP无法保证
- TCP面向字节流,UDP面向报文
- TCP数据传输慢,UDP数据传输快
二、请简单说一下你了解的端口及对应的服务?
端口 | 服务 |
---|---|
21 | FTP(文件传输协议 |
22 | SSH |
23 | Telnet远程登录 |
25 | SMTP简单邮件传输协议 |
53 | DNS域名服务器 |
80 | HTTP超文本传输协议 |
110 | POP3邮件协议3 |
443 | HTTPS |
1080 | Sockets |
1521 | Oracle数据库默认端口 |
3306 | MySQL服务 |
三、TCP的三次握手
在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP窗口大小信息。
TCP流程.jpg
- 第一次握手:建立连接,客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x,然后客户端进入SYN——SEND状态,等待服务器确认
- 第二次握手:服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置Acknowledgment Number为x+1(sequence number + 1);同时,自己还要发送SYN请求信息,将SYN位置为1,Sequence Number为y;服务器端将上述所有信息放到一个报文段(SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN_RECV状态
- 第三次握手:客户端接收到SYN_ACK报文段。然后将ACK number设为y+1,向服务器发送ACK报文段,这个报文段发送完毕之后,客户端和服务端都进入ESTABLISHED状态,完成TCP三次握手。
四、有哪些私有(保留)地址?
- A类:10.0.0.0 - 10.255.255.255
- B类:172.16.0.0 - 172.31.255.255
- C类:C类:192.168.0.0 - 192.168.255.255
五、IP地址分类
IP地址分类.jpgIPv6采用128位,首部固定为40字节
六、在浏览器中输入网址之后执行会发生什么?
- 查找域名对应的IP地址。这一步会依次查找浏览器缓存,系统缓存,路由器缓存,ISPNDS缓存,根域名服务器
- 浏览器向IP对应的web服务器发送一个HTTP请求
- 服务器响应请求,发回网页内容
- 浏览器解析网页内容
更加详细的说法,以百度为例,来自牛客网
- 客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。
- 在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。
- 客户端的网络层不用关系应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。
- 客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。
如果你想要更加深入的了解这个过程,点击阅读:从输入网址到显示网页的全过程分析
七、简单解释一些ARP协议的工作过程
- 首先,每个主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址之间的对应关系。
- 当源主机要发送数据时,首先检查 ARP 列表中是否有对应 IP 地址的目的主机的 MAC 地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送 ARP 数据包,该数据包包括的内容有:源主机 IP 地址,源主机 MAC 地址,目的主机的 IP 地址
- 当本网络的所有主机收到该 ARP 数据包时,首先检查数据包中的 IP 地址是否是自己的 IP 地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的 IP 和 MAC 地址写入到 ARP 列表中,如果已经存在,则覆盖,然后将自己的 MAC 地址写入 ARP 响应包中,告诉源主机自己是它想要找的 MAC 地址。
- 源主机收到 ARP 响应包后。将目的主机的 IP 和 MAC 地址写入 ARP 列表,并利用此信息发送数据。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。
八、OSI七层模型
OSI七层模型.gif九、TCP/IP四层模型
参考http://www.cnblogs.com/BlueTzar/articles/811160.html
十、HTTP 协议包括哪些请求?
- GET:对服务器资源的简单请求
- POST:用于发送包含用户提交数据的请求
- HEAD:类似于GET请求,不过返回的响应中没有具体内容,用于获取报头
- PUT:请求文档的一个版本
- DELETE:发出一个删除指定文档的请求
- TRACE:发送一个请求副本,以跟踪器处理进程
- OPTIONS:返回所有可用的方法,检查服务器支持哪些方法
- CONNECT:用于SSL隧道的基于代理的请求
十一、简述HTTP中GET和POST的区别
从原理看:
- GET用于信息获取,应该是安全和幂等的
- POST请求表示可能修改服务器上资源的请求
从表面上看:
- GET请求的数据会附在URL后面,POST的数据放在HTTP包体
- POST安全性比GET安全性高
网友评论