计算机网络(2

计算机网络续

一. 网络编程

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

二. 网络编程套接字(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.mfbz.cn/a/777990.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

7 系列 FPGA 引脚及封装(参考ug475)

目录 I/O BankPins引脚定义I/O and Multi-Function PinsPower Supply PinsDedicated XADC PinsTransceiver PinsDedicated Configuration PinsTemperature Sensor Pins Device 视图整个 FPGAIOBILOGIC,OLOGIC,IDELAY,ODELAYBUFIO,BUFR,IDELAYCTRLBUFMRCEBRAM,DSPIBUFDS_GTE2CLB…

vue2响应式原理+模拟实现v-model

效果 简述原理 配置对象传入vue实例 模板解析,遍历出所有文本节点,利用正则替换插值表达式为真实数据 data数据代理给vue实例,以后通过this.xxx访问 给每个dom节点增加观察者实例,由观察者群组管理,内部每一个键值…

35.哀家要长脑子了!--二分

模板 int check() {...} // 检查这个数是否符合相应的要求// 把区间[l, r] 划分成[l, mid] 和 [mid1, r] 时使用 // 找到数组中第一个大于等于某一值得元素或满足特定条件的第一个位置 int bsearch_1(int l, int r){int mid l r >> 1;while(l < r) {if(check(mi…

如何第一次从零上传项目到GitLab

嗨&#xff0c;我是兰若&#xff0c;今天想给大家说下&#xff0c;如何上传一个完整的项目到与LDAP集成的GitLab&#xff0c;也就是说这个项目之前是不在git上面的&#xff0c;这是第一次上传&#xff0c;这样上传上去之后&#xff0c;其他小伙伴就可以根据你这个项目的git地址…

linux 服务器数据备份 和 mysql 数据迁移

查看域名ip 查看程序所处文件位置 list open files 1、 lsof -i :port 查看端口获取进程 pid 2、lsof -i pid 1、scp 下载服务器文件到本地 security copy protocol 2、导出服务器 mysql 数据库&#xff08;表&#xff09;到本地 mysqldump是MySQL自带的一个实用程序&…

2024亚太杯数学建模竞赛(B题)的全面解析

你是否在寻找数学建模比赛的突破点&#xff1f;数学建模进阶思路&#xff01; 作为经验丰富的数学建模团队&#xff0c;我们将为你带来2024亚太杯数学建模竞赛&#xff08;B题&#xff09;的全面解析。这个解决方案包不仅包括完整的代码实现&#xff0c;还有详尽的建模过程和解…

Linux wget报未找到命令

wget报未找到命令需要安装wget 1、下载wget安装文件&#xff0c;本次于华为云资源镜像下载 地址&#xff1a;https://mirrors.huaweicloud.com/centos-vault/7.8.2003/os/x86_64/Packages/ 2、下载后上传到安装服务器/install_package&#xff0c;执行命令安装 rpm -ivh /i…

PD虚拟机怎么联网?PD虚拟机安装Win11无法上网 pd虚拟机连不上网怎么解决 mac安装windows虚拟机教程

PD虚拟机既可以联网使用&#xff0c;也可以单机使用。如需将PD虚拟机联网&#xff0c;可以共享Mac原生系统的网络&#xff0c;其使用体验与真实系统无异。本文会详细讲解PD虚拟机如何联网&#xff0c;并会进一步解决PD虚拟机安装Win10无法上网的问题。 如果有网络相关问题的小伙…

女生学计算机好不好?感觉计算机分有点高……?

众所周知&#xff0c;在国内的高校里&#xff0c;计算机专业的女生是非常少的&#xff0c;很多小班30人左右&#xff0c;但是每个班女生人数只有个位数。这就给很多人一个感觉&#xff0c;是不是女生天生就不适合学这个东西呢&#xff1f;女生是不是也应该放弃呢&#xff1f;当…

Deep Filtered Back Projection for CT Reconstruction

CT重建中的深度滤波反投影 论文链接&#xff1a;https://ieeexplore.ieee.org/document/10411896 项目链接&#xff1a; ABSTRACT 滤波反投影(FBP)是一种经典的计算机断层扫描(CT)重建解析算法&#xff0c;具有很高的计算效率。然而&#xff0c;用FBP重建的图像往往存在过多…

Http中get与post的区别,99%的人都理解错了吧

Get和Post是HTTP请求的两种基本方法&#xff0c;要说它们的区别&#xff0c;接触过WEB开发的人都能说出一二。 最直观的区别 就是Get把参数包含在URL中&#xff0c;Post通过request body传递参数。 你可能自己写过无数个Get和Post请求&#xff0c;或者已经看过很多权威网站总…

基于TCP的在线词典系统(分阶段实现)

1.功能说明 一共四个功能&#xff1a; 注册 登录 查询单词 查询历史记录 单词和解释保存在文件中&#xff0c;单词和解释只占一行, 一行最多300个字节&#xff0c;单词和解释之间至少有一个空格。 2.功能演示 3、分阶段完成各个功能 3.1 完成服务器和客户端的连接 servic…

【大数据】什么是数据融合(Data Fusion)?

目录 一、数据融合的定义 二、数据融合的类型 三、数据融合的挑战 四、数据融合的方法 五、数据融合的关键环节 1.数据质量监控指标的制定和跟踪 2.异常检测和处理机制 3.实时数据监测与反馈机制 4.协同合作与知识共享 一、数据融合的定义 数据融合&#xff08;Data Fusion&…

JVM原理(十三):JVM虚拟机类类加载器与双亲委派模型

1. 类加载器 Java虛拟机设计团队有意把类加载阶段中的“通过一个类的全限定名来获取描述该类的二进制字节流"这个动作放到Java虚拟机外部去实现&#xff0c;以便让应用程序自己决定如何去获取所需的类。实现这个动作的代码被称为“类加载器”(Class Loader)。 对于任意一…

利用级数公式计算圆周率(π)

π是是指圆的周长与直径的比值&#xff0c;是无限不循环小数&#xff0c;有很多种方法可以求得它的近似值。这里用比较容易实现的关于π的无穷级数来求它的前10000位的取值。 π / 2 π 具体的&#xff0c;用两个字符数组x,z分别存放当前计算得到的pi值&#xff0c;数组…

在5G/6G应用中实现高性能放大器的建模挑战

来源&#xff1a;Modelling Challenges for Enabling High Performance Amplifiers in 5G/6G Applications {第28届“集成电路和系统的混合设计”(Mixed Design of Integrated Circuits and Systems)国际会议论文集&#xff0c;2021年6月24日至26日&#xff0c;波兰洛迪} 本文讨…

【学术会议征稿】第四届机械自动化与电子信息工程国际学术会议(MAEIE 2024)

第四届机械自动化与电子信息工程国际学术会议&#xff08;MAEIE 2024&#xff09; 2024 4th International Conference on Mechanical Automation and Electronic Information Engineering 由安徽大学主办&#xff0c;安徽大学电气工程与自动化学院、安徽省人机共融系统与智能…

强化训练:day13(牛牛冲钻五、最长无重复子数组、重排字符串)

文章目录 前言1. 牛牛冲钻五1.1 题目描述1.2 解题思路1.3 代码实现 2. 最长无重复子数组2.1 题目描述2.2 解题思路2.3 代码实现 3. 重排字符串3.1 题目描述3.2 解题思路3.3 代码实现 总结 前言 1. 牛牛冲钻五   2. 最长无重复子数组   3. 重排字符串 1. 牛牛冲钻五 1.1 题…

[CTF]-PWN:House of Banana堆块题型综合分析

搭配largebin attack&#xff1a; 例题&#xff08;ISCC2024 heapheap)&#xff1a; 版本&#xff1a;glibc2.31 知识点&#xff1a;largebin attack、house of banana、uaf 查看保护 查看ida delete存在uaf漏洞 largebin attack手法&#xff1a; #创建4个堆块&#xff0…

Qtgui编程基础

Qt简介 ( 框架5.9.8版本 ) Qt是源代码级的跨平台一次编写到处编译.一次开发的Qt应用程序可以移值到不同平台. Qt体系架构 Qt的整个设计都是以单根继承为主这跟java相同.所谓单根继承就是说所有的Qt类都有一个共同的祖先都是QObject类QObject类后面有三个大的子类分别负责不同…