计算机网络 HTTP 无连接 与 无状态

01.什么是无连接

  • 无连接并不是说不需要连接
    • Http协议只是一个应用层协议,最终还是要靠运输层的如TCP协议向上提供的服务进行连接。
  • 无连接的含义是:
    • http约定了每次连接只处理一个请求,一次请求完成后就断开连接,这样主要是为了缓解服务器的压力,减小连接对服务器资源的占用。我的理解是,建立连接实际上是运输层的事,面向应用层的http来说的话,它就是无连接的,因为上层对下层无感知。
阅读更多

计算机网络 HTTP 各版本

01.Http1.0版本

  • HTTP协议是一种应用层协议
    • HTTP是HyperText Transfer Protocol(超文本传输协议)的英文缩写。HTTP可以通过传输层的TCP协议在客户端和服务器之间传输数据。HTTP协议主要用于Web浏览器和 Web服务器之间的数据交换。我们在使用IE或Firefox浏览网页或下载Web资源时,通过在地址栏中输入,开头的4个字母http就相当于通知浏览 器使用HTTP协议来和host所确定的服务器进行通讯。
阅读更多

计算机网络 HTTP 概述

01.什么是Http协议

  • HTTP协议是一种应用层协议
    • HTTP是HyperText Transfer Protocol(超文本传输协议)的英文缩写。HTTP可以通过传输层的TCP协议在客户端和服务器之间传输数据。HTTP协议主要用于Web浏览器和 Web服务器之间的数据交换。我们在使用IE或Firefox浏览网页或下载Web资源时,通过在地址栏中输入,开头的4个字母http就相当于通知浏览 器使用HTTP协议来和host所确定的服务器进行通讯。
阅读更多

计算机网络 TCP 和 UDP 对比

01.TCP和UDP的区别

  • ①UDP协议:
    • 面向无连接
    • 每个数据报的大小在限制在64k内
    • 因为是面向无连接,所以是不可靠协议
    • 不需要建立连接,速度快
  • ②TCP协议:
    • 必须建立连接,形成传输数据的通道
    • 在连接中可进行大数据量传输
    • 通过三次握手完成连接,是可靠协议
    • 必须建立连接,效率会稍低
阅读更多

计算机网络 IP 协议

IP 协议是 TCP/IP 协议族中最为核心的协议,更确切的说是网络层重要的协议之一。

IP 协议把上层数据报封装成 IP 数据报后进行传输,如果 IP 数据报太大,还要对数据报进行分片后再传输,到了目的地址处再进行组装还原,以适应不同物理网络对一次所能传输数据大小的要求。

IP协议具有以下几个显著的特点:

  • 不能保证 IP 数据报能成功地到达目的地。IP 协议仅提供最好的传输服务,如果发生某种错误时,如某个路由器暂时用完了缓冲区,IP 有一个简单的错误处理算法:丢弃该数据报,然后发送 ICMP 消息报给信源端。任何要求的可靠性必须由上层协议来提供(如TCP协议)。
  • IP 协议并不维护任何关于后续数据报的状态信息,每个数据报的处理是相互独立的。这也说明,IP数据报可以不按发送顺序接收。例如,如果一信源向相同的信宿发送两个连续的数据报(先是 A,然后是 B),每个数据报都是独立地进行路由选择,可能选择不同的路线,因此 B 可能在 A 之前先到达。
阅读更多

Java UDP 实现

01.客户端发送数据

  • 客户端发送数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/**
* 端口号
*/
private static final int PORT = 8080;

/*
* UDP协议发送数据:
* 1.创建发送端Socket对象
* 2.创建数据,并把数据打包
* 3.调用Socket对象发送方法发送数据包
* 4.释放资源
*/
private void udpSendMessage(String serverAddress) {
String content = "yang";
// 创建发送端Socket对象
try {
// 创建发送端Socket对象
DatagramSocket ds = new DatagramSocket();
// 创建数据,并把数据打包
byte[] bys = content.getBytes();
InetAddress byName = InetAddress.getByName(serverAddress);
DatagramPacket dp = new DatagramPacket(bys, bys.length,byName ,PORT);
// 调用Socket对象发送方法发送数据包
ds.send(dp);
// 释放资源
ds.close();
} catch (Exception e) {
e.printStackTrace();
}
}
阅读更多

计算机网络

01.三次握手原理图

  • 第一次:发送SNY=1表示此次握手是请求建立连接的,然后seq生成一个客户端的随机数X
  • 第二次:发送SNY=1,ACK=1表示是回复请求建立连接的,然后ack=客户端的seq+1(这样客户端收到后就能确认是之前想要连接的那个服务端),然后把服务端也生成一个代表自己的随机数seq=Y发给客户端。
  • 第三次:ACK=1。 seq=客户端随机数+1,ack=服务端随机数+1(这样服务端就知道是刚刚那个客户端了)
    image
阅读更多

计算机网络 TCP的数据传输

01.先看TCP特点

  • ②TCP协议:
    • 必须建立连接,形成传输数据的通道
    • 在连接中可进行大数据量传输
    • 通过三次握手完成连接,是可靠协议
    • 必须建立连接,效率会稍低
  • 那么你知道为tcp如何保证传输是可靠的,为何效率会低一些?

02.如何保证可靠传输

阅读更多

计算机网络 Socket

Socket简单介绍

  • Socket简单介绍
    • Socket就是为网络服务提供的一种机制
    • 通信的两端都有Socket
    • 网络通信其实就是Socket间的通信
    • 数据在两个Socket间通过IO传输
    • 玩Socket主要就是记住流程,代码查文档就行
    • Socket的简单使用的话应该都会,两个端各建立一个Socket,服务端的叫ServerSocket,然后建立连接即可。
阅读更多