IT修真院·小课堂丨互联网职业小课堂在线学习平台

课堂课题:

什么是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)结束语:

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

什么是tcp/ip协议?TCP的三次握手指的是什么,为什么一定要三次握手,而不是四次或者是两次?     中品

辅导师兄 [真传弟子]JAVA-刘凯


标题:

【修真院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

这个有点水啊,这是怎么回事?内容不够丰富啊?下回不允许这样了。

回复

请您登录 后进行评论