传输层协议TCP与UDP协议详解
1、IPv4的基本配置介绍,PC配置以及路由器配置
IP
- 手工配置,比较固定。静态IP地址
- DHCP动态主机配置协议,租赁,24小时
PC建议自动获取
Printer、Server、Router建议手工配置,使IP地址稳定。
DNS 域名解析服务 www.baidu.com —x.x.x.x
2、传输层两大服务,面向连接以及无连接
TCP/UDP封装协议
TCP 传输控制协议
UDP 用户数据报协议
这两个服务都能定义四层报头,并且将数据切片
3、TCP的基本工作原理
面向连接服务,可靠数据传输,具有重传机制。
可靠传输:
1、避免拥塞,流量控制;
2、依靠序列号(sequence)来防止乱序;
3、防止丢包 Acknowledgement;
4、防止篡改 Checksum校验和字段;
5、重传功能。
TCP 20-60Byte TCP/IP协议卷一 详解
TCP Header
1、源目端口
2、序列号码
3、确认号
4、报头长度、保留字段、控制位、滑动窗口
5、校验和、紧急指针
6、
7、数据
TCP的三次握手,TCP信令,内容为空,但是包含TCP报头。
Client-Server:TCP SYN
Server-Client:TCP SYN+ACK
Client-Server:TCP ACK
TCP的四次挥手
TCP数据可靠传输但是不安全,例如:TCP SYN Flooding Attack。
4、UDP的基本工作原理
无连接服务,尽力而为的传输,没有重传功能。应用层此时应该有一定的可靠传输机制。
但是UDP支持组播转发。
语音、视频这一类数据流量适合使用UDP。
Ethernet2|IPv4|UDP|rtp|VoIP|FCS
Realtime transport protocol
5、Google年薪20w美金面试题,一个数据包的旅行
打开你的笔记本,打开浏览器,在地址栏输入www.google.com,点击回车,在这个页面显示在浏览器之前,究竟经历了一些什么事情。
应用层:
1、在地址栏输入域名后,会开启HTTP这个应用,HTTP会尝试在DNS服务器(114.114.114.114)中,找到对应网址的IP地址的映射(A记录),如果找到了,DNS服务器会返回对应的IP地址给浏览器,在这个过程当中会用到F5 ,GTM(Global Traffic Manager)(负载均衡),根据客户所属的位置,找到一个离该位置最近的,并且线路最优的Google服务器;
2、找到Google服务器之后,http会根据TCP协议,让主机和服务器进行TCP三次握手,形成了TCP连接,此时HTTP的流量就能从主机发出到达服务器,服务器也可以返回浏览器HTTP协议所需要的数据;
3、浏览器会从服务器接受HTML、CSS、JS等代码,经过浏览器编译后,将一个动态的网页展示给客户看;
传输层:
4、在Google服务器和主机之间数据包发送的过程中,HTTP的数据流量没需要经过TCP协议的数据分片,分片之前要给数据添加四层报头(目的端口号和源端口号);
网络层:
5、添加三层报头(源IP也就是主机的IP,目的IP也就是通过DNS获得的服务器IP);
数据链路层:
6、添加二层帧头,主机会根据服务器的地址来判断,两者是不是在同一个网络(使用主机自身的子网掩码,跟服务器的IP地址做一个运算得到一个网络号,再跟主机本身的网络号做一个对比,),a如果相同就在同一网络,就直接解析服务器MAC地址,如果不同,主机会根据所指定的网关地址,检查ARP表,查看本地有没有网关到MAC的映射,如果有直接使用来封装帧头,如果没有,主机会发送ARP请求;网关收到ARP请求后,会记录主机的ARP表项,同时给主机做一个单播的ARP应答;PC接到ARP应答后,就可以封装二层帧头(目的MAC地址使用网关MAC地址,源MAC地址会使用自身的MAC地址,添加一个类型字段,添加一个帧尾);帧发送到交换机,交换机学习到MAC地址表项,并根据目的MAC地址,把帧发送给网关接口;网关接收到该帧后,查看目的MAC地址,发现与自身MAC地址一致,会认为是发给自己的,所以拆开二层封装,查看三层报头的目的IP,通过查看发现该帧不是发给自己的,通过之前获得的目的IP,利用IPv4的动态路由表项(包含多种路由选择协议),获得服务器的位置以及去往服务器的路径信息,最终通过提供的路径信息,一跳一跳的发送数据;其间,每经过一次路由,都会重复一次上述操作的,即拆封二层报头,再重新封装二层报头,直至抵达终点。