URI与URL的区别
- URI 是统一资源标志符,URL是统一资源定位符,URN是统一资源名称,URI分为三种,URL,URN or (URL and URN).URL代表资源的路径地址,URI代表资源的名称。URL就是一种URI,他标识一个互联网资源,并制定对其操作或获取该资源的方法。比如标识一个人的身份,通过身份证(URI)独一无二的指出,也可以通过一种住址的方式(URL)去标识。同样标识一个网站也是类似的。
OSI的7层模型和TCP/IP4层模型是什么
- OSI的7层模型:物理层,数据链接层,网络层,传输层,会话层,表达层,应用层。
- TCP/IP4层模型: 应用层,传输层,网络层和数据链路层。
理解应用层协议是什么
- 应用层是大多数普遍与网络相关的程序为了通过网络与其他程序通信所使用的层。这个层的处理过程是应用特有的;网络相关的程序以这种应用内部使用的格式进行传送数据,然后被编码橙标准协议的格式。每一个应用层协议一般都会使用到传输层协议(TCP和UDP)
理解传输层协议是什么
-
TCP(Transmission Control Protocol, 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。与之对应的是UDP(User Datagram Protocol ,用户数据报协议),是不可靠的传输层协议。
-
TCP上的协议:
- HTTP(80端口),用于普遍浏览。
- HTTPS,HTTP的安全版本
- FTP(20和21端口),文件传输
- POP3(110) ,收邮件
- SMTP(25端口),发电子邮件
- SSH(22端口),加密安全登录
-
UDP上的协议:
- dhcp(67端口): 动态配置ip地址
- dns(域名服务): 用于完成地址查找,邮件转发
- snmp,用于网络信息的收集和网络管理
- arp,用于动态解析以太网硬件地址
理解TCP协议的三步握手流程
- 客户端发送 SYN报文给服务器端,序列号是n,进入 SYN_SEND 状态。
- 服务器端收到 SYN 报文,回应一个ACK(序列号是n+1)同时发一个 SYN (序列号是m),进入 SYN_RECV 状态。
- 客户端收到服务器端的 SYN 报文,回应一个 ACK(序列号是m+1)报文,进入 Established 状态。
理解TCP协议的四步挥手流程
- 客户端发送一个 FIN ,告诉服务器想关闭连接。
- 服务器收到这个 FIN ,发回一个 ACK。
- 服务器通知应用程序关闭网络连接,应用程序关闭后通知服务器。服务器发送一个 FIN 给客户端 。
- 客户端发回 ACK 报文确认。
为什么握手要三步,挥手却是四步?
- 是因为服务端的 LISTEN 状态下的 SOCKET 当收到客户端建立连接请求的SYN 报文后,它可以把 ACK 和 SYN ( ACK 起应答作用,而 SYN 起同步作用)放在一个报文里来发送。但关闭连接时,当服务器收到客户端的 FIN 报文通知时,服务器只能发一个回应报文ACK:“哦,我知道了”,然后通知应用程序。应用程序完成全部数据发送并确定可以终止了,服务器才能发送FIN告诉客户端可以真正断开连接了。所以这一步ACK报文和FIN报文需要分开发送,因此多了一个步骤。