java基础之网络编程

本文详细介绍了网络协议及其层次结构,包括应用层、运输层、网络层和数据链路层。重点讲解了TCP/IP协议族,以及TCP的三次握手和四次挥手过程,解释了为何需要三次握手和四次挥手。此外,还涵盖了HTTP与HTTPS的区别、常见HTTP状态码、GET与POST方法的差异,以及对称加密和非对称加密的概念。文章还讨论了Session、Cookie和Token在Web应用中的作用和区别,以及Servlet的线程安全性和生命周期。
摘要由CSDN通过智能技术生成

网络协议是什么

在计算机网络当中当需要交换数据的时候,可能会出现一些格式的要求,或者是否需要发送一个应答信息,这些都是一些预定好的规则,这些协议就被称为网络协议。

划分层次

这里我们可以将计算机网络分为五个层次,这五个层次从上到下依次为应用层、运输层、数据链路层、物理层。其实在实际应用当中主要TCP/IP是一个四层的体系结构,主要包括:应用层、运输层、网络接口层,但是这些都还是包含得很详细的,下面是对应的图片
在这里插入图片描述

应用层

应用层协议定义的是应用进程间的通信和交互的规则。

对于不同的网络应用对应着不同的协议,这些协议包括了域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议。

运输层

这就是将两台主机之间的进程之间的通信提供数据传输的服务。

运输层主要使用以下两种协议:

UDP协议:提供无连接的协议,尽量大的数据传输,但是不提供数据传输的可靠性

TCP协议:提供有连接的协议,数据传输很可靠
每一个应用层(TCP/IP参考模型的最高层)协议一般都会使用到两个传输层协议之一:

运行在TCP协议上的协议:

HTTP(Hypertext Transfer Protocol,超文本传输协议),主要用于普通浏览。
HTTPS(HTTP over SSL,安全超文本传输协议),HTTP协议的安全版本。
FTP(File Transfer Protocol,文件传输协议),用于文件传输。
POP3(Post Office Protocol, version 3,邮局协议),收邮件用。
SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),用来发送电子邮件。
TELNET(Teletype over the Network,网络电传),通过一个终端(terminal)登陆到网络。
SSH(Secure Shell,用于替代安全性差的TELNET),用于加密安全登陆用。

运行在UDP协议上的协议:

BOOTP(Boot Protocol,启动协议),应用于无盘设备。
NTP(Network Time Protocol,网络时间协议),用于网络同步。
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),动态配置IP地址。

运行在TCP和UDP协议上:

DNS(Domain Name Service,域名服务),用于完成地址查找,邮件转发等工作。

网络层

网络层的目标就是选择合适的网间路由和交换节点,确保计算机的通信能够及时传送。在发送数据时,网络层把从运输层取得的报文段或者数据封装起来进行传送。

数据链路层

数据链路层(data link layer)通常简称为链路层。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。

在两个相邻节点之间传送数据时,数据链路层将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。

在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。

一般的web应用的通信传输流是这样的:
在这里插入图片描述

发送端在层与层之间传输数据时,每经过一层时会被打上一个该层所属的首部信息。反之,接收端在层与层之间传输数据时,每经过一层时会把对应的首部信息去除。

物理层

在物理层上所传送的数据单位是比特。 物理层(physical layer)的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。

TCP/IP协议族

下面就是对应的图像
在这里插入图片描述

TCP的三次握手和四次挥手

TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,在发送数据前,通信双方必须在彼此间建立一条连接。所谓的“连接”,其实是客户端和服务端保存的一份关于对方的信息,如ip地址、端口号等。

TCP可以看成是一种字节流,它会处理IP层或以下的层的丢包、重复以及错误问题。在连接的建立过程中,双方需要交换一些连接的参数。这些参数可以放在TCP头部。

一个TCP连接由一个4元组构成&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值