
网络
文章平均质量分 85
一朵花花
女孩子也可以好好敲代码丫
展开
-
IP 协议报文格式 【IPv4】
前言: IP 数据报文由首部(称为报头)和数据两部分组成;首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的;在首部的固定部分的后面是一些可选字段,其长度是可变的每个 IP 数据报都以一个 IP 报头开始;源计算机构造这个 IP 报头,而目的计算机利用 IP 报头中封装的信息处理数据;IP 报头中包含大量的信息,如源 IP 地址、目的 IP 地址、数据报长度、IP 版本号等;每个信息都被称为一个字段IP 协议报文格式版本号首部长度区分服务 TOS总长度如图所示:版本号占 4原创 2022-03-15 12:09:10 · 11959 阅读 · 2 评论 -
TCP 其他 7 大特性【滑动窗口机制▲】
滑动窗口机制认识滑动窗口丢包问题处理流量控制拥塞控制 (安全机制)延迟应答捎带应答滑动窗口机制,是在可靠性的前提下,进一步的提高传输效率认识滑动窗口一发一收的方式: TCP 协议需要对数据进行确认后,才可以发送下一个数据包,如图:如上图,发送端每发送一个数据包,都需要得到接收端的确认应答以后,才可以发送下一个数据包,是一问一答的串行过程;即每次传输数据都需要等待一个对应的等待时间,那么传输 N 份数据,就需要等待 N 次应答时间,总的传输时间:N 份数据传输时间 + N 份应答传输时间一发一收的原创 2022-02-10 22:49:24 · 2615 阅读 · 10 评论 -
TCP 协议(包含三次握手,四次挥手)
TCP 特性1.确认应答 (可靠传输的最核心机制)1.确认应答 (可靠传输的最核心机制)可靠传输的最核心机制原创 2022-01-28 19:58:15 · 51772 阅读 · 80 评论 -
TCP 协议报文格式
前言:前面,我们已经提过TCP 协议属于传输层协议,以及TCP/IP 五层/四层模型数据从应用层开始,会在每一层都会加上头信息,进行封装,再发送到数据接收端TCP 协议报文格式端口号序列号确认号数据偏移字段保留字段标志位字段????窗口大小字段TCP 校验和字段紧急指针字段可选项字段报文格式TCP UDP 的报头和 Http 的报头差别很大;Http 是文本格式的协议 (按照字符串文本的方式处理的),而 TCP / UDP 都是二进制的协议 (以字节 / 比特位为单位进行组织的)TCP 报文是原创 2022-01-12 10:15:00 · 15554 阅读 · 12 评论 -
UDP 协议报文格式
UDP 协议格式每个 UDP 报文分为 UDP 报头和 UDP 数据区两部分报头由 4 个 16 位长(2 字节) 字段组成,分别说明该报文的源端口、目的端口、报文长度和校验值UDP 报文中每个字段的含义:源端口: 操作系统自动分配的这个字段占据 UDP 报文头的前 16 位,通常包含发送数据报的应用程序所使用的 UDP 端口。接收端的应用程序利用这个字段的值作为发送响应的目的地址。这个字段是可选的,所以发送端的应用程序不一定会把自己的端口号写入该字段中。如果不写入端口号,则把这个字段设置为原创 2022-01-11 10:00:00 · 6787 阅读 · 7 评论 -
Http Server 版本3 - 实现完整的登录过程(Cookie & Session)
前言:之前,我们写了两个版本的 Http 服务器,本篇,再继续实现第三个版本V3 将满足:1.支持返回一个静态的 html 文件2.解析处理 cookie (把 cookie 处理成键值对结构)3.解析处理 body (把 body 中的数据处理成键值对结构)4.实现一个完整的登录功能 (session 的简单实现)request 类:public class Request { private String method; private String url; p原创 2022-01-07 22:43:15 · 818 阅读 · 6 评论 -
简单认识 cookie
上篇,我们写了简单的Http Server,本篇仍然使用该代码,来学习 cookie目录使用 cookie设置多个 cookie使用 cookie全部代码链接 (版本2)对其进行部分修改:重启服务器,观察效果:仍使用 fiddler 抓包观察:响应里包含:上述操作就是把 “I am cookie” 写回到浏览器中可以在浏览器里查看:Cookie 是啥?就是一个字符串 (里面内容程序猿自己设定)Cookie 从哪来?从服务器来,服务器会在 header 中引入一个 Set-C原创 2022-01-09 13:00:00 · 603 阅读 · 4 评论 -
简单实现 http Server (版本1、2)
代码实现:public class HttpServerV1 { /* * http 底层要基于 tcp 来实现 * 需要按照 tcp 的基本格式来进行开发 * */ private ServerSocket serverSocket = null; public HttpServerV1(int port) throws IOException { serverSocket = new ServerSocket(port);原创 2022-01-07 19:00:00 · 545 阅读 · 0 评论 -
初始 http【网络】
前言: 生活中,我们在上网时,打开一个网页,就可以看到网址,如下:https://blog.youkuaiyun.com/m0_47988201?spm=1011.2124.3001.5343访问网站使用的协议类型:https(基于 http 实现的,只不过在 http 基础上引入一个加密层)http 和 https 都是应用层协议应用层的协议都需要程序猿来手动指定(自己定制协议)http 协议是基于 tcp 来实现的目录URLurlencode 和 urldecodehttp 协议格式http 请求htt原创 2022-01-06 19:00:00 · 815 阅读 · 0 评论 -
简单的服务器 TCP版本 熟悉其 API 【网络】
Java 标准库中提供了两种风格DatagramSocket:面向数据报ServerSocket:面向字节流原创 2022-01-05 18:00:00 · 520 阅读 · 0 评论 -
简单的服务器 UDP版本 熟悉其 API 【网络】
前言: 通过写一个简单的服务器来了解 UDP 的常用API目录UDP服务器程序UDP客户端程序客户端角度理解五元组总结面向数据报 (发送接收数据,必须以一定的数据包为单位进行传输)使用传输层 UDP 协议UDP服务器程序对于一个服务器程序来说,核心流程分为两步:1.初始化 (实例化 Socket 对象)2.进入主循环, 接收并处理请求 (主循环就是一个"死循环")a) 读取数据并解析b) 根据请求计算响应c) 把响应结果写到客户端 此处以一个 echo server 为例:最原创 2022-01-04 19:00:00 · 767 阅读 · 8 评论 -
封装和分用【网络】
也就是各个层次的协议之间是如何协同工作的两个核心操作:1.封装2.分用原创 2022-01-03 19:00:00 · 963 阅读 · 6 评论 -
网络编程—预备知识
目录网络编程—预备知识服务器(server) - 客户端(client)IP / MAC / 端口号五元组网络编程—预备知识服务器(server) - 客户端(client)举例: 客人去餐馆点菜,吃饭~请求——点菜响应——上菜参观无法确定客人啥时候来吃饭,只能一大早就开门,很晚才关门主动发送请求的一方:客户端被动接收请求的一方:服务器服务器无法确定客户端什么时候发送请求,只能提前准备好,并且持续等待,甚至很多服务器 7 * 24 小时==工作IP / MAC / 端口号IP:原创 2022-01-02 19:00:00 · 268 阅读 · 0 评论 -
网络协议【网络】
目录协议定义作用 ( 为什么要有协议?)协议分层优点OSI 七层模型TCP / IP 五层(或四层)模型协议协议的意思就是字面的意思,双方(通信双方)达成的一种共识~定义协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流,它的三要素是:语法,语义,时序为了使数据在网络上从源到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议( protocol ),最原创 2022-01-01 19:10:58 · 966 阅读 · 0 评论