1、OSI模型

news/2024/12/22 19:34:58/

目录

一、OSI模型

二、TCP / IP 模型 (协议簇)

1、TCP/IP简介

2、自下而上了解TCP/IP协议: (网络接口和物理层)

3、TCP/IP协议其他知识点

三、基本知识点

1、socket——插座

2、为什么需要socket

         3、什么是socket

4、IP地址

5、端口号(用于区分计算机中某一个具体的程序)

6、字节序

一、OSI模型

应示会输网数物

二、TCP / IP 模型 (协议簇)

1、TCP/IP简介

(1)TCP/IP协议事实上是一个工业标准。

(2)TCP/IP协议指的是能够在多个不同的网络间实现信息传输的协议簇。

(3)该协议并不是只由 TCP 和 IP协议组成,而是由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇。只是TCP/IP 协议比较有代表性所以被称为TCP/IP协议。

(4)TCP/IP只有4层

2、自下而上了解TCP/IP协议: (网络接口和物理层)

  • 物理层的主要设备就是中继器和集线器(交换机/路由)
  • 封装成帧(在数据的前后分别加上开始《纠错以及修正》和结束的标记后便构成了一帧)
  • 每一个数据链路层都规定了所能传输的一针数据中数据的长度上限称为最大传输单元(MTU)
  • 透明传输(指的是不管数据的二进制是如何组合都应该能够正常传输而不会被误以为是某些控制的命令, 确保数据安全到达)
  • 差错检测(在传输的二进制编码中加入适当的冗余度使得接收者可以发现在传输中是否出现了差错)
  • TCP /IP 协议的数据包组成:

3、TCP/IP协议其他知识点

(1)特点:不局限于某一台主机中的各个进程,只要网络可以到达,就可以实现跨平台的进程通信。

(2)协议:想要实现在两个或多个平台中稳定通信,就需要遵守(达成)同一个协议。

(3)TCP协议包含两个方面

tcp传输协议:用来检测网络传输中差错的传输控制协议

ip 网际协议:专门负责对不同网络进行互联的互联网协议IP

(通俗的来说TCP是专门负责传输过程中的出错问题,一旦出现传输的问题TCP协议则会 介入处理,并把出错的数据包重新传输直到数据安全到达为止。而IP协议则是在网络中负责不同的 网络之间的通信,给网络中的每一台主机分配一个不同的IP地址)

三、基本知识点

1、socket——插座

是一个编程接口

是一个特殊的文件描述符

不仅仅局限于TCP/IP协议

面向连接 TCP(视频通话)

无连接 UDP (发微信消息)

很多的应用 都依赖于socket的接口例如FTP\TELNET等

2、为什么需要socket

(1)普通IO操作的过程: 打开文件 >> 读/写操作 >> 关闭文件( 在同一个机器上的两个程序可以简单的通过某一个相同的文件进行数据的交流和传输)

(2)Socket相当于从网络向进程传递数据和从进程向网络传递数据的门户。(在网络中两个进程完全不存在统一个机器打开方式)

3、什么是socket

独立于具体协议的网络编程接口

在OSI模型中主要位于会话层和传输层之间

Socket的类型:

  • 流式套接字 (SOCK_STREAM) TCP :提供一个面向连接、可靠的数据传输服务,数据无差错、无重复、地发送并按顺序抵达。内设流量控 制,避免数据流淹没前面的数据。数据被查看时字节流,无长度限制。
  • 数据报套接字(SOCK_DGRAM) UDP :提供无连接服务,数据包以独立数据包形式被发送,不提供无差错保证,数据有可能丢失或重复到 达,顺序发送可能会乱序接收
  • 原始套接字(SOCK_RAW) :可以直接访问较低层次的协议例如 IP\ICMP

4、IP地址

  • IP地址是网络中主机(电脑)的标识
  • 在网络中主机想要与其他机器通信就必须拥有一个自己的IP地址
  • IP地址为32位(IPV4)或者128位(IPV6)
  • 每一个数据包都必须携带目的地址IP和源IP地址,路由器依靠此信息为数据包选择最优路由(路线)

5、端口号(用于区分计算机中某一个具体的程序)

  • 用于区分一台主机中接收到的数据包应该转交给哪一个进程进行处理。
  • TCP端口号与UDP端口号是相互独立的
  • 端口号一般由IANA(Internet Assigned Numbers Authority) 统一管理
  • 众所周知端口: 1 - 1023 (1-25之间为众所周知端口 , 256 - 1023 为UNIX系统占用) 何为总所周知端口其实就是早已固定号的端口比如80端口分配给WWW服务,21端口分配给FTP服务等
  • 注册端口: 1024 -49151 分配给进程或者应用。这些端口号在还没有被服务器资源占用时,可以由用户的APP 动态注册获得。
  • 动态端口号:49152 - 65535 被称为动态端口号他一般不固定分配某种服务而是动态分配的。一般可以使用 65000 以上的就可以随便用

6、字节序

  • 小端序(Little-Endian):低序(低有效位)存储在低地址(起始地址),Intel\AMD 等采用的方式
  • 大端序(Big-Endian) :高序(高有效位)存储在低地址 ARM采用的存储方式

为了避免在不同的处理器中收到的数据出现字节序带来的问题,因此网络中传输的数据必须按照网 络字节序来处理,也就是大端序。发送者在发送数据前必须先转换为网络字节序,而接收者需要在收 到网络中的数据时再转换为自己合适的主机字节序。


http://www.ppmy.cn/news/33897.html

相关文章

Candence PCB Si 仿真设计篇3:板级链路仿真

接上篇Candence PCB Si 仿真设计篇2;提示仿真链路中无VIA过孔仿真模型,可手动添加VIA过孔仿真模型; 1.添加过孔VIA仿真模型. 在SigXplorer PCB SI GXL界面中,菜单栏Analyze->Via Model Generator弹出设置VIA模型设置&#xf…

一行代码“黑”掉任意网站

文章目录只需一行代码,轻轻一点就可以把任意网站变成暗黑模式。 首先我们先做一个实验,在任意网站中,打开浏览器开发者工具(F12),在 C1onsole 控制台输入如下代码并回车: document.documentElement.style.filterinve…

天狗实战(二)SpringBoot API开发详解 --SpringMVC注解+封装结果+支持跨域+打包(下)

本文目录前言专栏介绍一、创建SpringBoot项目1.1 添加springboot依赖1.2 创建启动类1.3 创建控制器类1.4 Run 或 Debug二、开发图书管理API2.1 web层BookAdminControllerBookVO2.2 service层BookServiceBookServiceImplBookBO2.3 dal层BookMapperBookMapperImplBook2.4 Postman…

完全小白的pycharm深度学习调试+for循环断点条件设置

完全小白的pycharm深度学习调试for循环断点条件设置写在最前面基础方法pycharm断点调试控制台输入代码中循环的debug方法pycharm中图标的介绍常见的BugDebug经验1. 检查激活函数的输入值2. 检查梯度3. 消融实验4. 使用最短的时间5. 静下心来写在最前面 之前把seq2seqattention…

第35篇:Java代码规范全面总结

编程规范目的是帮助我们编写出简洁、可维护、可靠、可测试、高效、可移植的代码,提高产品代码的质量。 适当的规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化, 以一种普遍认可的统一方式一起做事,提升协作效率,降低沟通成本。 代码的字里行间流淌的是软…

js---call、apply和bind的区别

一、call、apply和bind的作用 相同点: 都是动态修改this指向;都不会修改原先函数的this指向。 异同点: (1)执行方式不同: call和apply是改变后页面加载之后就立即执行,是同步代码。 bind是异步代码&#xf…

【C语言】你真的了解结构体吗

引言✨我们知道C语言中存在着整形(int、short...),字符型(char),浮点型(float、double)等等内置类型,但是有时候,这些内置类型并不能解决我们的需求,因为我们无法用这些单一的内置类型来描述一些复杂的对象&#xff0c…

新产品上线前需要准备哪些产品文档呢?一文详解

无论是ToC还是ToB产品,从产品整个生命周期来看,文档都是不可或缺的交付物,承接企业协同工作流上下游,帮助团队统一目标,建立规范,因此非常重要。 新产品上线之前应该准备以下文档: 对内 1.商…