课堂课题:
什么是tcp/ip协议?TCP的三次握手指的是什么,为什么一定要三次握手,而不是四次或者是两次?
关联任务:
任务五
直播时间:
2018-11-12 18:30:00
课堂内容:
视频链接:
PPT链接:
提交按钮:
小课堂内容格式
标题:
【修真院xx(职业)小课堂】课题名称
开场语:
大家好,我是IT修真院XX分院第X期的学员XX,一枚正直纯洁善良的XX程序员,今天给大家分享一下,修真院官网XX(职业)任务X,深度思考中的知识点——XXX
(1)背景介绍:
背景介绍的时候,尽可能的要宽广,讲清楚来龙去脉,讲清楚为什么会需要这个技术。
(2)知识剖析:
讲知识点的时候,尽可能的成体系,学会成体系的去给别人介绍知识。现在很多做的都是零散的,没有分类。
(3)常见问题:
最少列出1个常见问题。
(4)解决方案:
写清楚常见问题的解决方案。
(5)编码实战:
尽可能的去寻找在真实项目中在用的。如果你能找到某个网站在用你说的知识点,这是最好的。学以致用,否则当成练习题就没有意义了。多准备一些demo,讲解过程中将知识点和demo结合,便于大家理解所讲解的知识点。
(6)拓展思考:
知识点之外的拓展思考,由分享人进行讲解,这些东西就是所谓的深度,也是一个人技术水准高低比较的表现。
(7)参考文献:
引入参加文献的时候,在引用的句子后面加上序号【1】。参考文献中列出详细来源。不要去抄别人的东西,这是一个基本的态度。
(8)更多讨论:
Q1:提问人:问题?
A1:回答人(可以是分享人,也可以是其他学员):回答
Q2:提问人:问题?
A2:回答人(可以是分享人,也可以是其他学员):回答
Q3:提问人:问题?
A3:回答人(可以是分享人,也可以是其他学员):回答
(9)鸣谢:
感谢XX、XX师兄,此教程是在他们之前技术分享的基础上完善而成。
(10)结束语:
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
标题:
【修真院java 小课堂】什么是TCP/IP协议?TCP的三次握手指的是什么,为什么一定要三次握手,而不是四次或者是两次?
开场语:
大家好,我是IT修真院郑州分院第12期的学员张泉良,一枚正直纯洁善良的JAVA程序员,今天给大家分享一下,修真院官网JAVA任务二,深度思考中的知识点—— 什么是TCP/IP协议?TCP的三次握手指的是什么,为什么一定要三次握手,而不是四次或者是两次?
1. 背景介绍:
网络协议:
书本上的定义:网络协议是为计算机网络中进行数据交换而建立的规则、标准或约定的集合
网络协议就是人为规定的一套通信规范,只要双方都遵循这个规范,就能实现交流
TCP/IP具体含义:利用ip进行通信时所必须用到的协议群的统称。
具体来说,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。
2. 知识剖析:
TCP/IP协议族是一个四层协议系统,自底而上是数据链路层、网络层、传输层和应用层。上层协议使用下层协议提供的辅助。
(1) 数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输
(2) 网络层实现数据包的选路和转发。网络层的任务就是选择中间节点(路由器),以确定两台主机之间的通信路径
(3) 传输层为两台主机上的应用程序提供端到端的通信。传输层只关心通信的起始端和目的端,忽略数据包的中转过程
传输层协议主要有三个:TCP协议、UDP协议和SCTP协议
(4) 应用层负责处理应用程序的逻辑。
数据链路层、网络层和传输层负责处理网络通信细节,这部分必须既稳定又高效,因此在内核空间中实现。
而应用层则在用户空间,因为它负责处理众多逻辑,比如文件传输、名称查询等。
3. 常见问题:
(1)TCP/IP协议通信的过程?
浏览器访问服务器服务流程:
1、浏览器访问网址
2、dns协议解析域名
3、http协议---http数据,确定数据传输格式等
4、TCP协议---加TCP首部----端口之间发送数据包----三次握手达成连接
5、IP协议---加IP首部----通过IP地址确定网络地址
6、以太网协议--加以太网首部----确定mac地址(主机网卡的唯一标识)
(2)如何建立TCP/IP连接?
TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。
所谓三次握手是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认连接的建立。
基础信息:
TCP报文格式
(1)序列号:Sql序号,用来标识数据包,发起方发送数据时对此进行标记。
(2)确认序号:Ack序号,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。
(3)标志位:共6个,即SYN、ACK、PSH、RST、URG、FIN
(3)为什么要三次握手?
在《计算机网络》一书中其中有提到,三次握手的目的是“为了防止已经失效的连接请求报文段突然又传到服务端,
因而产生错误”
三次握手是在安全可靠的基础上,握手次数最少的方案。两次握手并不能保证可靠性。四次握手又浪费了效率
4. 编码实战:
5. 拓展思考:
(1) TCP建立连接为什么需要三次握手而结束要四次挥手?
三次握手:client请求连接SYN---server确认收到,发送ACK和SYN---client确认收到
四次挥手:client请求关闭FIN---(server确认收到,发送ACK---server继续发送数据直到完毕,发送FIN)
----client确认收到
(2)TCP与UDP的区别
(3) TCP的可靠传输原理
停止等待协议
连续ARQ协议
6. 参考文献:
(1) https://www.jianshu.com/p/e7f45779008a
(2) https://blog.csdn.net/be_happy_mr_li/article/details/52243006
(3) 计算机网络第6版
7. 更多讨论:
Q1:Sequence number序列号是什么?
A1:Sql序号,用来标识数据包,发起方发送数据时对此进行标记。数据包的序号,有操作系统根据一定的算法生成,相当于id的作用。
Q2:acknowledgement number和ACK区别?
A2:ACK:标识符,只有0和1,只要有数据包的传输,ACK就要set为1;
acknowledgement number:ack序号,只有ACK标志位为1时,确认序号字段才有效,ack=Seq+1;
在数据包传输过程中ack=seq+len;
Q3:TCP与UDP的区别
A3:TCP协议提供面向连接的,可靠的传输服务,但速度较慢,适合文件下载等传输任务;UDP协议提供无连接的,不可靠的传输服务,但速度较快,适合媒体流等看重传输速度的传输任务
8. 鸣谢:
9. 结束语:
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
[郑州|结业弟子]JAVA-何爽 发表于 2018-11-14 18:23:48 #1
这个有点水啊,这是怎么回事?内容不够丰富啊?下回不允许这样了。
回复