网络知识点总结
来源:互联网 发布:淘宝监管记录怎么消除 编辑:程序博客网 时间:2024/06/05 14:54
1.交换机 和路由器 有什么区别?
交换机是基于MAC地址识别,能够封装、转发数据包功能的设备。他具有流量控制,一般用于组建局域网络。
路由器是 用于链接Internet中 各局域网、广域网的设备,是网络的枢纽,用于为数据包找到最合适的到达路径。
不同点: (1)工作层次不同, 交换机是在OSI模型的数据链路层个工作,路由器是在OSI模型的网络层工作。
(2)转发数据时依据不同,交换机依据设备的MAC地址,路由器依据IP地址。
(3)交换机连接的网段是属于一个广播域的,不能隔离广播域; 链接到路由器的网段被划分为不同的广播域,能隔离广播风暴。
(4)交换机负责同一网段的通信, 路由器负责不同网段的通信。
2.集线器(Hub)与交换机有什么 区别?
集线器实质上是一个中继器,与网卡、双绞线等传输介质一眼,是数据通信系统中的设备。用于对接收到的信号进行放大。
不同点:
(1)工作层次不同, 集线器工作在OSI模型中的物理层, 而交换机工作早数据链路层。集线器只是对数据传输 起到同步、放大和整形作用。交换机不但可以对数据传输 起到同步、放大和整形作用,还可以过滤短帧、碎片,对数据包进行转发。
(2)工作方式不同,集线器是通过广播方式进行的, 某个端口在接受相应时,其他所有端口都会接受到响应,只是其他端口会丢弃收到的响应。。 交换机,只有请求端口和目的端口会收影响,其他的不会收到影响。
(3)带块不同,集线器所有端口 共享一个带宽, 交换机每个端口 有一条独占的带宽。
3.路由表 。 路由表是 指 路由器或者其他网络设备上存储的表, 他决定如何将数据包从一个网络传到另一个网络。
路由表能力: 路由表所能容纳的表项数量。
静态路由表: 系统管理员 固定设置好。
动态路由表:路由器能自动创建 和修改。 根据 路由选择协议 自动学习和记忆网络运行情况。
4. 网络协议
TCP就想打电话, UDP就像发短信
4.1 TCP和UDP区别:
(1)TCP面向连接的传旭控制协议, UDP提供无连接的数据报服务。
(2)TCP具有高可靠性,确保数据的正确性,不出现丢失或者乱序; UDP传输数据不可靠,可能会出现丢失、重复、乱序。(应用程序负责可靠性的工作)。
(3)TCP对系统资源要求较多,UDP则较少。
(4)UDP实时性较高,工作效率比TCP高。
(5)UDP段结构比TCP的简单,网络开销少。
4.2 如何将无连接的UDP变成类似TCP的功能
4.3 三次握手,四次断开 详细参考 http://blog.csdn.net/xifeijian/article/details/12777187
(1)客户端发送连接请求SYN包
(2)服务器端对连接请求进行确认ACK包+ SYN包
(3)客户端对服务器端发的确认进行确认。ACK包
三次握手的原因:如果两次握手,某一个因网络延迟出现的失效请求,被服务器端确认后,导致服务器端一直等待客户端发送数据(因为这个失效连接请求,在3次握手中,客户端并不会对服务器的确认 进行确认),浪费资源。
详细参考 http://www.cnblogs.com/huhuuu/p/3572485.html
(1)客户端发送数据完毕,发送一个FIN包,请求关闭连接。
(2)服务器端收到FIN包,做出相应发送ACK包,确认这一方向的连接将要关闭。
(3) 服务器花费一定时间,做好关闭准备后, 服务器发送一个FIN包给客户端,请求关闭连接请求。
(4)客户端对服务器发送的请求进行确认,并发送ACK包。
为什么要四次:(前提需要记住,谁发送FIN,意味着谁就不再发送数据了,可以接受数据)
客户端发送关闭请求FIN后,服务器端进行确认ACK。但此时服务器可能还在发送数据,因此FIN不能和ACK同时发送,必须分开发送。当服务器发送数据完毕,就可以发送关闭连接请求FIN了,客户端发送确认ACK,等待2MSL后,客户端就知道服务器端已经收到ACK(否则2MSL时间内必会收到一个新的FIN),连接关闭。
A为什么等待2MSL,才从TIME_WAIT到CLOSE状态?
在Client发送出最后的ACK回复,但该ACK可能丢失。Server如果没有收到ACK,将不断重复发送FIN片段。所以Client不能立即关闭,它必须确认Server接收到了该ACK。Client会在发送出ACK之后进入到TIME_WAIT状态。Client会设置一个计时器,等待2MSL的时间。如果在该时间内再次收到FIN,那么Client会重发ACK并再次等待2MSL。所谓的2MSL是两倍的MSL(Maximum Segment Lifetime)。MSL指一个片段在网络中最大的存活时间,2MSL就是一个发送和一个回复所需的最大时间。如果直到2MSL,Client都没有再次收到FIN,那么Client推断ACK已经被成功接收,则结束TCP连接。
举例:
A:“喂,我不说了。”A->FIN_WAIT1
B:“我知道了。等下,上一句还没说完。Balabala…..”B->CLOSE_WAIT | A->FIN_WAIT2
B:”好了,说完了,我也不说了。”B->LAST_ACK
A:”我知道了。”A->TIME_WAIT | B->CLOSED
A等待2MSL,保证B收到了消息,否则重说一次”我知道了”,A->CLOSED
- 网络编程知识点总结
- 网络知识点总结
- 网络数据传输知识点总结
- 基础知识点总结:网络
- 网络知识点总结
- Java网络知识点总结
- 网络知识点总结
- 网络知识点总结(一)
- TCP/IP网络知识点总结
- 网络基础知识点总结1
- 后端网络编程知识点总结
- 后端网络编程知识点总结
- TCP/IP网络知识点总结
- 网络编程--之socket编程知识点总结
- 黑马程序员 知识点总结-Java网络编程
- Java基础之网络编程知识点总结
- 黑马程序员--网络编程知识点总结
- 【学习日记】java网络编程知识点总结
- springMVC对静态资源访问的处理
- spring事务
- SpringMVC
- 生理周期(枚举)
- 绑定点击事件注意的一个小细节
- 网络知识点总结
- Python 爬虫实践:《战狼2》豆瓣影评分析
- CSS揭秘 第一章 引言
- 【HDU-2087-剪花布条】(KMP)
- 用注解实现SpringMVC
- Spring-jdbc的实现
- Spring MVC体系结构
- ACM对拍程序的写法【批处理命令】
- springmvc方法名称解析器和视图解析器