IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 网络编程与Socket编程 -> 正文阅读

[网络协议]网络编程与Socket编程

网络编程

网络和网络编程

? 按照我们的常规理解网络,就是两台不同地点的电脑可以通过传输介质,通信设施,网络协议进行资源共享数据传输。全球不同地点的电脑都可以通过网络进行资源共享,数据传输。

? 网络编程就是通过编写程序是网络上的俩个或者多个设备(比如计算机)实现数据传输。

网络体系结构

? 聊计算机网络通信的实现,就不得不聊网络体系结构和网络协议。

网络体系结构,是针对于网络通信实现分层次讨论提出的逻辑概念。

最普及的俩种网络体系结构分别是IBM最早提出,后经过不断完善优化,由国际标准组织ISO提出的 OSI/RM (开放系统互联参考模型)、美国国防部提出后不断完善的 TCP/iP (传输控制协议/)

OSI参考模型

osi模型

TCP/IP参考模型

TCP/IP模型

网络协议

? 协议是大家协商好的一种规范,为了达到网络体系架构所构思的实现体系,世界网络通用的有几种重要协议。

Tcp协议

? TCP协议是针对于传输层而设计的一种协议。面向连接,稳定可靠;每个TCP连接都有三个阶段,建立连接,数据传输,释放连接。类似理解:打电话。

? 建立连接手段–三次握手;

? 情景理解:A和B想通话。

? A:我是A,你能听到吗?亲爱的B

? B:我听到了,我是B,你呢?能听到吗?

? A:我也能听到你说话。

? 建立连接成功。

? 释放连接手段–四次挥手

? 情景理解:A和B分批次运输货物,A想确认运输完毕,关门下班了。

? A:完了吧,准备关门是否可以?

? B:嗯,差不多了,可以的。等我确认下余下的都发出去了,然后再给你通知。

? B:确认了,刚有点剩余,我发出去了,我关了,再见。你也可以关了。

? A:Ok,看了b关了,那我也能关了。

UDP协议

? Udp和Tcp同属于针对传输层的协议。是不可靠,无连接的。

? 情景理解为:A向B发信鸽传输,发出去就不管了。

网络端口

? 前面我们知道我们可以通过ip地址和mac地址进行俩个端点设备的建立数据连接,那么在达到目的端点设备的数据,应该传给目的计算机上的哪个进程该如何确定呢,这就引入了端口的协议设定。

网络端口是为了不同操作系统进程间的通信作用。网络端口不是物理概念,是协议栈上的字节区分的。规则的设定一共有65535个端口(0-65535正好是2的16次方个),端口不是越多越好,够用就好。规则设计者管理 0 到 1023 之间的端口,而 1024 到 65535 之间的端口,官方叫临时端口,大家可以随意设置。

? 数据接受时,根据五元组(源头ip,目的ip,传输协议,源头端口,目的端口号)确定接受者,是目的ip计算机上的哪个应用进程。

? 情景理解:A的qq信息发送至B的qq,b的qq在运行时会自动分配到随机的一个端口号,能精确传至b的qq号。如果开了俩个qq程序,那么这俩qq程序,分被会被随机分配俩个端口,也可以区分开。

? 理解以下论断:

? 不同协议可以公用一个端口,因为五元组元素还是能区分开唯一接受者;同理,相同协议不可公用一个端口。

? 端口也可以人为指定。

? 假设系统开很多程序,系统也会按照算法分配端口,不会重复。那么假设系统开了n多程序,超过了端口规则的端口数量,就会发生端口冲突。

? 网络上说的多个应用进程可以绑定一个协议上的端口,这种情况下,实际上同一时间,只有一个协议端口被一个应用进程绑定了;如果多个应用进程绑定一个TCP协议上的端口,那么此时的数据传输对象是不稳定的。

Ip协议

? IP协议,是网络层根据ip地址进行路由选择,拥塞控制等作用。

通俗的讲,大家应该知道IP4地址和IP6地址。

http协议

? 超文本传输协议,基于TCP协议之上的请求响应式应用层协议;是基于web浏览器和web服务器之间的通信标准协议。最广泛的协议之一。

? 现在使用广泛的还有https,这是在http协议下加入了ssl层,起到了加密安全通信的作用。

JAVA Socket网络编程

Socket概述

? JAVA的网络编程主要涉及的就是Socket编程。

? 首先先了解接口的定义,在网络分层思想下,每层专注于自身所负责的模块,下层为上层提供服务。上下层之间的关联称为服务访问点,或者接口。

? Socket可以看做是TCP/IP协议栈和应用层之间的中间交互体,方便程序员进行对TCP/IP协议栈为基础的网络通信进行管控。作为TCP/IP协议栈,通常我们用到的协议是TCP,IP,Socket编程只是对应用层以下依照TCP/IP协议模型体系的一种抽象,也可以向其中扩展其他协议。

Socket整体流程

?

? Socket编程是针对网络通信的俩个端点进行的,首先在服务器建立一个服务端套接字(ServerSocket),附加到一个对应端口,进行监听。0-1024是特权端口,我们可以采用一个没有被当前进程占用的端口。

? 客户端请求与服务端进行连接时,可以通过域名或者IP,加上端口号,打开一个套接字。当服务器接受连接后,客户端和服务单就能像流一样进行操作。

听。0-1024是特权端口,我们可以采用一个没有被当前进程占用的端口。

? 客户端请求与服务端进行连接时,可以通过域名或者IP,加上端口号,打开一个套接字。当服务器接受连接后,客户端和服务单就能像流一样进行操作。
Socket通信模型

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-23 12:49:51  更:2021-10-23 12:50:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:53:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码