从上网流程分析计算机网络中的协议
2016-10-22 22:20
465 查看
首先,从一个用户接入互联网开始,一般都不能独占一个外网地址,需要DHCP(应用层)动态分配一个IP地址,才可以上网。
这时候用户可能想要发送一个邮件(要用应用层SMTP协议),传输一个文件(要用应用层FTP协议-传输层TCP),浏览一个网页,在浏览器中输入网址后(http协议-应用层),需要DNS服务器将域名解析为目的IP地址(应用层DNS协议-传输层UDP),有了目的IP地址之后,开始经过传输层的TCP协议,进行一个面向连接的传输。传输层的作用是进行报文的可靠性的验证、流量控制等,还有重要的一点就是它拥有端口号的概念,可以实现不同主机之间进程间的通讯。
无论传输层用的是TCP协议,还是UDP协议,网络层都通过IP协议进行一个不可靠传输,所谓不可靠就是不保证100%交付。
那么问题来了,我知道了对方的目的IP地址,如何将报文正确转发到目的地址所在的主机呢?
主机先把报文转发给默认路由器(如果没有默认路由器,就转发给随便转发一个路由器),路由器在路由表中查找有没有对应的IP地址,如果没有,再将报文转发给其他的路由器,以此类推。这里有一个问题,转发的过程并不像大家想象的那么简单,因为真正的转发是通过物理地址进行转发的,这里就设计到将IP地址转化为物理地址的过程(ARP协议-IP协议的一部分,属于网络层协议)。刚刚谈到了路由选择问题,那路由器实际上是可以通过相互学习(实际上就是发报文)来完善自己的转发表的,这里面就涉及到内部网关协议RIP。
刚刚提到IP协议实际上提供了不可靠传输,但是还是做了一些差错检验的工作的,如ICMP协议。
PS:网络层还有个IGMP用于实现多播。
继续向下分析,两个路由器通过物理地址进行通讯,而信道是双工模式的,即同一时间可能有其他的路由器或者主机在发送消息,这时候,就要用到CSMA/CD碰撞监测了。
上文讲到,网络的可靠传输是通过传输层来保证的。下面主要说下TCP和UDP。
UDP:
头部8个字节
长度由进程决定
TCP:
头部20个字节
长度由TCP自己根据拥塞情况和窗口值决定
TCP链接的端点交套接字(socket)或插口
TCP与UDP相比,有点是:可靠传输、流量控制、拥塞控制
这三者从根本上都是通过控制滑动窗口实现的。
可靠传输是利用滑动窗口的确认需要,来保证可靠性
流量控制通过规定发送方的发送窗口实现流量控制
拥塞控制实际上是从整个网络层面来进行流量控制,其核心还是滑动窗口机制。
TCP的三次握手
直接上这两个图吧!
四次握手断开连接:
中间有几个注意事项:
可以参看这篇文章
http://blog.csdn.net/liufangbaishi2014/article/details/51983695
这时候用户可能想要发送一个邮件(要用应用层SMTP协议),传输一个文件(要用应用层FTP协议-传输层TCP),浏览一个网页,在浏览器中输入网址后(http协议-应用层),需要DNS服务器将域名解析为目的IP地址(应用层DNS协议-传输层UDP),有了目的IP地址之后,开始经过传输层的TCP协议,进行一个面向连接的传输。传输层的作用是进行报文的可靠性的验证、流量控制等,还有重要的一点就是它拥有端口号的概念,可以实现不同主机之间进程间的通讯。
无论传输层用的是TCP协议,还是UDP协议,网络层都通过IP协议进行一个不可靠传输,所谓不可靠就是不保证100%交付。
那么问题来了,我知道了对方的目的IP地址,如何将报文正确转发到目的地址所在的主机呢?
主机先把报文转发给默认路由器(如果没有默认路由器,就转发给随便转发一个路由器),路由器在路由表中查找有没有对应的IP地址,如果没有,再将报文转发给其他的路由器,以此类推。这里有一个问题,转发的过程并不像大家想象的那么简单,因为真正的转发是通过物理地址进行转发的,这里就设计到将IP地址转化为物理地址的过程(ARP协议-IP协议的一部分,属于网络层协议)。刚刚谈到了路由选择问题,那路由器实际上是可以通过相互学习(实际上就是发报文)来完善自己的转发表的,这里面就涉及到内部网关协议RIP。
刚刚提到IP协议实际上提供了不可靠传输,但是还是做了一些差错检验的工作的,如ICMP协议。
PS:网络层还有个IGMP用于实现多播。
继续向下分析,两个路由器通过物理地址进行通讯,而信道是双工模式的,即同一时间可能有其他的路由器或者主机在发送消息,这时候,就要用到CSMA/CD碰撞监测了。
上文讲到,网络的可靠传输是通过传输层来保证的。下面主要说下TCP和UDP。
UDP:
头部8个字节
长度由进程决定
TCP:
头部20个字节
长度由TCP自己根据拥塞情况和窗口值决定
TCP链接的端点交套接字(socket)或插口
TCP与UDP相比,有点是:可靠传输、流量控制、拥塞控制
这三者从根本上都是通过控制滑动窗口实现的。
可靠传输是利用滑动窗口的确认需要,来保证可靠性
流量控制通过规定发送方的发送窗口实现流量控制
拥塞控制实际上是从整个网络层面来进行流量控制,其核心还是滑动窗口机制。
TCP的三次握手
直接上这两个图吧!
四次握手断开连接:
中间有几个注意事项:
可以参看这篇文章
http://blog.csdn.net/liufangbaishi2014/article/details/51983695
相关文章推荐
- 计算机网络-TCP协议三次握手过程分析
- 计算机网络--网络协议分析技术
- 路由器有线无法上网,此计算机上缺少一个或多个网络协议——解决方法
- 通过改变网络拓扑使用Sniffer Pro监控、分析协议的示意图
- [转]网络协议分析工具Ethereal的使用
- 跟踪HTTP通道流程分析网络安全隐患
- Linux下的网络协议分析工具-tcpdump快速入门手册
- Linux网络协议分析工具TCPDump
- 通过改变网络拓扑使用Sniffer Pro监控、分析协议的示意图
- 通过改变网络拓扑使用Sniffer Pro监控、分析协议的示意图
- [转]常用网络协议分析工具
- Getmac返回计算机中所有网卡的媒体访问控制 (MAC) 地址以及每个地址的网络协议列表
- 网络监听攻击技术——数据包扑捉与协议分析
- 通过改变网络拓扑使用Sniffer Pro监控、分析协议的示意图
- SSL网络协议安全性分析
- 不能上网修复网络协议
- Linux下的网络协议分析工具-tcpdump
- 删除文章-原创-网络计算机最新发展模式及前景分析
- 计算机网络第四次作业——关于无线局域网络协议