一些网络相关问题的总结
2016-03-16 19:02
549 查看
OSI七层模型
应用层:直接面向用户,负责向用户提供各种网络应用服务,为用户提供通信的接口
表示层:主要是定义数据格式及加密
会话层:对传输的报文提供同步管理服务,在不同系统中互相通信的两个进程之间提供建立、连接、控制会话的功能
传输层:向高层屏蔽了通信细节。为端到端系统之间提供报文的传输方式,以及选择传输协议TCP、UDP
网络层:为数据报的传输提供路由功能,即为数据包选择合适的点到点链路
数据链路层:在通信实体之间建立链路连接,传输数据帧
物理层:为数据链路层提供物理连接,传输的是比特流
TCP/IP四层模型
应用层:直接面向用户,负责向用户提供各种网络应用服务,为用户提供通信的接口
传输层:为端到端用户之间提供应用程序之间的通信
网络层:负责相邻主机之间的点到点通信,主要提供路由和拥塞控制的功能
网络接口层:负责数据帧的发送和接收,即接收IP数据包向网络中发送,或从网络接收数据帧向IP层提交
基于TCP的应用层协议有:
FTP、HTTP、Telnet、SMTP、POP3、HTTPS
基于UDP的应用层协议有:
DNS、SNMP、NFS
TCP和UDP的区别:
TCP是有连接的,两台主机在进行数据交互之前必须先通过三次握手建立连接;而UDP是无连接的,没有建立连接这个过程
TCP是可靠的传输,TCP协议通过确认和重传机制来保证数据传输的可靠性;而UDP是不可靠的传输
TCP还提供了拥塞控制、滑动窗口等机制来保证传输的质量,而UDP都没有
TCP是基于字节流的,将数据看做无结构的字节流进行传输,当应用程序交给TCP的数据长度太长,超过MSS时,TCP就会对数据进行分段,因此TCP的数据是无边界的;而UDP是面向报文的,无论应用程序交给UDP层多长的报文,UDP都不会对数据报进行任何拆分等处理,因此UDP保留了应用层数据的边界
输入URL之后都发生了什么:
1)根据URL进行DNS解析,找到域名对应的服务器主机IP地址
2)Http都是基于TCP的,因此需要进行三次握手与服务器端建立连接
3)将TCP包从本机传输到服务器主机的过程中,必须还要进行路由
4)三次握手成功后,就可以发送HTTP请求了
5)服务器端收到HTTP请求后,就会恢复一个HTTP响应,主机收到响应后就会对响应进行解析,然后在浏览器中显示出来
当访问了一个网址后,关掉这个tab,然后马上再次访问这个网址还需要进行DNS吗?
不需要,因为在短期之内(时间不定,可能几分钟,可能几小时),本地主机会有DNS缓存,可直接到DNS缓存中进行查找
DNS缓存中每条记录一般都会保存URL到服务器IP的映射,以及生存时间timetolive
Windows上查看和清除本机DNS缓存记录:
ipconfig /displaydns
ipconfig /flushdns
应用层:直接面向用户,负责向用户提供各种网络应用服务,为用户提供通信的接口
表示层:主要是定义数据格式及加密
会话层:对传输的报文提供同步管理服务,在不同系统中互相通信的两个进程之间提供建立、连接、控制会话的功能
传输层:向高层屏蔽了通信细节。为端到端系统之间提供报文的传输方式,以及选择传输协议TCP、UDP
网络层:为数据报的传输提供路由功能,即为数据包选择合适的点到点链路
数据链路层:在通信实体之间建立链路连接,传输数据帧
物理层:为数据链路层提供物理连接,传输的是比特流
TCP/IP四层模型
应用层:直接面向用户,负责向用户提供各种网络应用服务,为用户提供通信的接口
传输层:为端到端用户之间提供应用程序之间的通信
网络层:负责相邻主机之间的点到点通信,主要提供路由和拥塞控制的功能
网络接口层:负责数据帧的发送和接收,即接收IP数据包向网络中发送,或从网络接收数据帧向IP层提交
基于TCP的应用层协议有:
FTP、HTTP、Telnet、SMTP、POP3、HTTPS
基于UDP的应用层协议有:
DNS、SNMP、NFS
TCP和UDP的区别:
TCP是有连接的,两台主机在进行数据交互之前必须先通过三次握手建立连接;而UDP是无连接的,没有建立连接这个过程
TCP是可靠的传输,TCP协议通过确认和重传机制来保证数据传输的可靠性;而UDP是不可靠的传输
TCP还提供了拥塞控制、滑动窗口等机制来保证传输的质量,而UDP都没有
TCP是基于字节流的,将数据看做无结构的字节流进行传输,当应用程序交给TCP的数据长度太长,超过MSS时,TCP就会对数据进行分段,因此TCP的数据是无边界的;而UDP是面向报文的,无论应用程序交给UDP层多长的报文,UDP都不会对数据报进行任何拆分等处理,因此UDP保留了应用层数据的边界
输入URL之后都发生了什么:
1)根据URL进行DNS解析,找到域名对应的服务器主机IP地址
2)Http都是基于TCP的,因此需要进行三次握手与服务器端建立连接
3)将TCP包从本机传输到服务器主机的过程中,必须还要进行路由
4)三次握手成功后,就可以发送HTTP请求了
5)服务器端收到HTTP请求后,就会恢复一个HTTP响应,主机收到响应后就会对响应进行解析,然后在浏览器中显示出来
当访问了一个网址后,关掉这个tab,然后马上再次访问这个网址还需要进行DNS吗?
不需要,因为在短期之内(时间不定,可能几分钟,可能几小时),本地主机会有DNS缓存,可直接到DNS缓存中进行查找
DNS缓存中每条记录一般都会保存URL到服务器IP的映射,以及生存时间timetolive
Windows上查看和清除本机DNS缓存记录:
ipconfig /displaydns
ipconfig /flushdns
相关文章推荐
- 关于使用fseek函数之后feof函数无法结束文件的警告 http://bbs.csdn.net/topics/390759596
- StartSSL免费SSL证书成功申请-HTTPS让访问网站更安全
- HttpClient的使用
- MyTCP<三>
- Drainage Ditches--hdu1532(网络流 模板)
- CDN的cache节点(http)结构及工作原理总结(图自画)
- ifconfig命令--查看、配置、启用或禁用网络接口的工具
- 网络请求的synchttpclient的优点
- iOS9网络请求失败
- [caffe]深度学习之MSRA图像分类模型Deep Residual Network(深度残差网络)解读
- linux tcp网站
- TCP之心跳包实现思路
- Android http连接方式选择,从Volley窥探Google处理方式
- TCP/IP 协议简单分析
- MyTCP<二>
- 网络游戏专业术语中英文对照版
- Java简单的网络爬虫实现
- python网络编程
- [网络流24题]code vs 1914 运输问题
- JAVA利用HttpClient进行POST和GET请求(HTTPS)