Java基础:计算机网络——TCP/IP、HTTP

人盡茶涼 提交于 2020-02-25 20:27:16

一、OSI与TCP/IP各层的结构与功能,都有哪些协议?

OSI的7层协议和TCP/IP的四层协议的优点折中出了——五层协议体系结构

 1.1、应用层

作用:进程间通信的规则,不同的网络应用需要不同的应用层协议

有两个应用层协议需要了解:

域名系统DNS:

以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.

例如:一个公司的 Web 网站可看作是它在网上的门户,而域名就相当于其门牌地址,通常域名都使用该公司的名称或简称。比如:IBM 公司的域名是 www.ibm.com、Oracle 公司的域名是 www.oracle.com

HTTP协议(超文本传输协议)

所有的 WWW(万维网) 文件都必须遵守这个标准

1.2、传输层

作用:负责向两台主机进程之间的通信提供 通用的数据传输服务

传输控制协议TCP

面向连接、可靠

用户数据协议UDP:

面向无连接、不可靠、尽最大努力传输服务

1.3、网络层

作用:在 计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。

以下是IP层协议:

IP协议

1.4、数据链路层

作用:两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。数据链路层将网络层交下来的 IP 数据报组装成

1.5、物理层

作用:实现相邻计算机节点之间比特流的透明传送

 

二、TCP三次握手和四次挥手

2.1、TCP三次握手

(1)示意图

了准确无误地把数据送达目标处,TCP协议采用了三次握手策略

示意图详解:

  •  客户端–发送带有 SYN 标志的数据包–一次握手–服务端;
  • 服务端–发送带有 SYN/ACK 标志的数据包–二次握手–客户端;
  • 客户端–发送带有带有 ACK 标志的数据包–三次握手–服务端

(2)为什么要三次握手

为了建立可靠的通信信道,目的是双方确认自己与对方的发送与接收是正常的

(3)为什么要传回SYN

接收端传回发送端,为了告诉发送端自己收到的信息确实就是你所发送的信号了,SYN就是握手信号。

(4)传了SYN,为什么还要传ACK

双方通信无误必须是两者互相发送信息都无误。传了SYN,证明发送方到接收方的通道没有问题,但是接收方到发送方的通道还需要ACK信号验证

 

2.2、断开一个TCP连接需要四次挥手

(1)示意图

示意图详解:

客户端-发送一个 FIN,用来关闭客户端到服务器的数据传送;

服务器-收到这个 FIN,它发回一 个 ACK,确认序号为收到的序号加1 ,

服务器-关闭与客户端的连接,发送一个FIN给客户端;

客户端-发回 ACK 报文确认,并将确认序号设置为收到序号加1

(2)为什么要四次挥手

发送方和接收方任何一方都可能发送传输结束后 发送连接释放的通知,待对方确认后进入半关闭状态。当另一方也没有数据再发送的时候则发出连接释放通知,对方确认后 就完全关闭了TCP连接

示例:

A 和 B 打电话,通话即将结束后,A 说“我没啥要说的了”,B回答“我知道了”,但是 B 可能还会有要说的话A 不能要求 B 跟着自己的节奏结束通话。于是 B 可能又巴拉巴拉说了一通,最后 B 说“我说完了”,A 回答“知道了”,这样通话才算结束。

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!