计算机网络(2

news2024/11/18 10:38:41

计算机网络续

一. 网络编程

网络编程, 指网络上的主机, 通过不同的进程, 以编程的方式实现网络通信(或网络数据传输).
即便是同一个主机, 只要不同进程, 基于网络来传输数据, 也属于网络编程.

二. 网络编程套接字(socket)

socket: 操作系统提供的网络编程的 API 称作 “socket api”.
socket 原译: 插槽, 最初指的是主板上特定的插槽.

1. socket api

  1. 流式套接字
    给 TCP 使用 (TCP: 有连接, 可靠传输, 面向字节流, 全双工);
  2. 数据报套接字
    给 UDP 使用 (UDP: 无连接, 不可靠传输, 面向数据报, 全双工);

由于两个协议差异大, 所以搞两套 api 分别表示.

  1. Unix 域套接字
    不能跨主机通信, 是本地主机进程与进程之间的通信方式.(现在很少用);

2. TCP/UDP协议特点

在这里插入图片描述

( 1. 有链接和无连接
  • 有连接, 相当于电话打通了, 才能说话.
    通信双方保存对方信息
  • 无连接, 相当于发微信, 不需要接通就可以发信息.
    通信双方不保存对方信息

计算机中的连接是 各自保存对方的信息, 此时就认为建立了一个 “抽象的连接”

( 2. 可靠传输和不可靠传输

可靠 != 安全

  • 安全: 传输的数据是否易被黑客捕获, 造成严重影响。
  • 可靠: 要传输的数据, 尽可能 的传输给对方。
  • 为什么说 尽可能:因为网络环境太复杂了,A 传输给 B 中间会经历许多的交换机和路由器转发,若某个交换机 / 和路由器异常繁忙,要处理的数据量已经超出自身的硬件水平,此时就可能会出现 丢包 情况的发生。(所以 丢包 的发生和位置无法预知。为对抗丢包,就引入了TCP可靠性传输,但不能达到100%避免)
( 3. 面向字节流和面向数据报
  • 字节流:比喻成流水一样,读写非常灵活,文件操作就是 字节流。
    TCP 和 文件操作具有相同的特点
  • 数据报: 数据报是传输数据的基本单位, 是一个个的 UDP 数据报

网络传输数据的基本单位术语(0 和 1 的二进制数串)
( 1. 数据报 Datagram;UDP
( 2. 数据段 Segment;TCP
( 3.数据包 Packet;IP
( 4. 数据帧 Frame;数据链路层
无需刻意区分

( 4. 全双工和半双工

全双工:一条链路双向通信(TCP和UDP都是全双工,则既可以写也可以读)
半双工:一条链路单向通信
网线中的几根线,有些线负责信息是发送,有些线负责信息接收

3. UDP的 socket api

( 1. DatagramSocket
系统中本就有 socket 的概念,DtatagramSocket 就是对于操作系统的概念的封装
系统中的 socket 则可以理解成是一种 文件,而 文件 是一种广义的的概念,socket 文件,就可以视为是 “网卡” 的抽象表现。针对 socket 文件的读写操作,就相当于针对 网卡 这个硬件设备进行读写。
这样就可以很方便的操作硬盘,似遥控器远程操控一样,像这种具有 “遥控属性” 的这样概念,计算机中将其命名为 “句柄” (handle – 把手)
(2. DatagramPacket
针对 UDP 数据报 的一个抽象表示,一个 DatagramPacket 对象,就相当于一个 UDP 数据报。
一次发送 /一次接收,就是传输了一个 DatagramPacket 对象。


未完待续…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1900311.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

免杀笔记 ----> DLL注入

这段时间我们暂时没什么事情干的话我们就继续更新我们的免杀笔记力!!! :今天我们讲DLL注入 目录 1.DLL注入 2.直接加载DLL? 3.远程线程注入 获取Handle 远程申请内存空间 将我们的CS的DLL加载入内存 创建远程线…

C语言 | Leetcode C语言题解之第218题天际线问题

题目: 题解: struct pair {int first, second; };struct Heap {struct pair* heap;int heapSize;bool (*cmp)(struct pair*, struct pair*); };void init(struct Heap* obj, int n, bool (*cmp)(struct pair*, struct pair*)) {obj->heap malloc(si…

Midjourney对图片细微调整和下载保存

点击v2是对第二图片细微调整。 点击u3对第3张图片进行放大。 保存图片: 对点击u3放大的图片,双击 , 右键保存图片

antd通过监听change方法实现表格分页查询功能

<script setup> import {computed, onMounted, ref} from "vue"; import axios from "axios";const columns [{name: 姓名,dataIndex: name,key: name,},{name: 性别,dataIndex: gender,key: gender,},{title: 年龄,dataIndex: age,key: age,},{tit…

江苏徐州SAP代理商有哪些?怎么选择?

在数字化浪潮席卷全球的今天&#xff0c;企业对于高效、智能的管理系统需求日益迫切。SAP作为全球领先的企业管理软件解决方案提供商&#xff0c;其产品在市场上享有极高的声誉。而在江苏徐州&#xff0c;哲讯智能科技作为SAP的代理商&#xff0c;以其专业的技术实力和优质的服…

配置基于不同端口的虚拟主机

更改配置文件&#xff0c;添加三个不同端口的虚拟主机 <directory /www> allowoverride none require all granted </directory><virtualhost 192.168.209.136:80> documentroot /www servername 192.168.209.136 </virtualhost><virtualhost 192.…

idea中没有显示‘‘Spring‘‘一栏 (已解决)

第一步: 随便找一个Bean(即直接或者间接使用Component的类) 第二步: 找到左边的图标, 右键这个图标, 然后选择如下选项: 第三步: 成功 然后就成功了, 可以看到具体的bean了以及其bean的关系图等.

数据库-多表设计 多表查询

多表设计 一对多 一对多关系实现&#xff1a;在数据库表中多的一方&#xff0c;添加字段&#xff0c;来关联一的一方的主键 外键约束 -- 创建表时指定 create table 表名(字段名 数据类型,...[constraint] [外键名称] foreign key (外键字段名) references 主表…

InetAddress.getLocalHost().getHostAddress()阻塞导致整个微服务崩溃

InetAddress.getLocalHost().getHostAddress()阻塞导致整个微服务崩溃 import java.net.InetAddress;public class GetHostIp {public static void main(String[] args) {try {long start System.currentTimeMillis();String ipAddress InetAddress.getLocalHost().getHostA…

(一)优化算法-遗传算法

目录 前言 一、什么是遗传算法&#xff1f; &#xff08;一&#xff09;基本结构 &#xff08;二&#xff09;遗传操作 二、仿真过程 &#xff08;一&#xff09;主程序部分 &#xff08;二&#xff09;选择函数 &#xff08;三&#xff09;交叉函数 &#xff08;四&a…

2024年加密货币市场展望:L1、L2、LSD、Web3 和 GameFi 板块的全面分析与预测

随着区块链技术的快速发展&#xff0c;加密货币市场在2024年继续展现出蓬勃的生机和创新的潜力。本文将深入分析L1、L2、LSD、Web3和GameFi这五大板块的发展趋势和预测&#xff0c;帮助投资者和爱好者更好地理解和把握市场机遇。 一、L1&#xff1a;基础层协议的持续进化 L1&a…

最新全平台无人直播硬改XCMS系统,支持任何平台

软件功能: 改虚拟摄像头为真实摄像头&#xff0c;改真实麦克风&#xff0c;图层去重、镜头晃动、增加噪点去重、随机播放辅音&#xff0c;两条音轨帮助音频去重、随机音效、随机播放速度&#xff0c;直播源实时转播等等.防违规&#xff0c;防非实时 设备需求: 电脑&#xf…

万界星空科技机械加工行业MES解决方案

机械加工行业作为制造业的重要组成部分&#xff0c;面临着生产效率、成本控制和产品质量提升等多重挑战。为了应对这些挑战&#xff0c;引入并实施制造执行系统&#xff08;MES&#xff09;成为了行业的必然选择。本文将详细介绍一种针对机械加工行业的MES解决方案&#xff0c;…

IT入门知识第八部分《人工智能》(9/10)

1.引言 在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;和机器学习&#xff08;ML&#xff09;已成为推动技术革新的关键力量。它们不仅改变了我们与机器的互动方式&#xff0c;还极大地拓展了解决问题的可能性。本文将深入探讨人工智能和机器学习的基础&…

全新桌面编辑器

目录 前言 一、链接 ONLYOFFICE 8.1版本 官网下载链接&#xff1a; ONLYOFFICE 在线工具&#xff1a; 下载版本推荐&#xff1a; 二、使用体验 1. 界面设计&#xff1a; 2. 文档编辑功能&#xff1a; 3. 电子表格功能&#xff1a; 4. 演示文稿功能&#xff1a; 5.PDF编…

在centos7上部署mysql8.0

1.安装MySQL的话会和MariaDB的文件冲突&#xff0c;所以需要先卸载掉MariaDB。查看是否安装mariadb rpm -qa | grep mariadb 2. 卸载mariadb rpm -e --nodeps 查看到的文件名 3.下载MySQL安装包 MySQL官网下载地址: MySQL :: Download MySQL Community Serverhttps://dev.mys…

玩转Easysearch语法

Elasticsearch 是一个基于Apache Lucene的开源分布式搜索和分析引擎&#xff0c;广泛应用于全文搜索、结构化搜索、分析等多种场景。 Easysearch 作为Elasticsearch 的国产化替代方案&#xff0c;不仅保持了与原生Elasticsearch 的高度兼容性&#xff0c;还在功能、性能、稳定性…

乐清网站建设规划书

乐清是位于浙江省温州市的一个县级市&#xff0c;拥有悠久的历史和丰富的文化底蕴。随着互联网的快速发展&#xff0c;网站建设成为推动乐清经济和文化发展的重要手段。因此&#xff0c;我们认为有必要制定一个全面的乐清网站建设规划书&#xff0c;以促进乐清的经济繁荣和文化…

Banana Pi BPI-M4 Berry创建热点和设置静态IP

create_ap是一个帮助快速创建Linux上的WIFI热点的脚本&#xff0c;并且支持bridge和NAT模式&#xff0c;能够自动结合hostapd, dnsmasq和iptables完成WIFI热点的设置&#xff0c;避免了用户进行复杂的配置&#xff0c;github地址如下&#xff1a; https://github.com/oblique/…

add_metrology_object_generic 添加测量模型对象。找两条直线,并计算两条线的夹角和两个线的总长度,转换成毫米单位

*添加测量模型对象 *将测量对象添加到测量模型中 *算子参数&#xff1a; *    MeasureHandle&#xff1a;输入测量模型的句柄&#xff1b; *    Shape&#xff1a;输入要测量对象的类型&#xff1b;默认值&#xff1a;‘circle’&#xff0c;参考值&#xff1a;‘circl…