网络的划分:局域网(几米到几千米);城域网(几千米到几十千米);广域网(几十千米以上)

IP地址

IP地址是一个无符号4个字节的整数uint32_t,在网络中作为主机的唯一标识
网络中的每条数据中都会包含源端IP地址对端IP地址----标识这个数据从哪个主机发出,要交给哪个主机来接收
ip地址最大有32个,最多只能表示出4g的IP地址数量,也就是最多能使用43亿个IP地址,地球上的人和每个人都用肯定是不够的。也是目前使用最多的IPv4协议。为了满足该要求,扩展到IPv6协议,能用128位来表示IP地址,uint8_t addr[16]这就可以从根本上解决了我们的IP地址数量问题。但是目前还并未推广,目前大多数程序都是遵循IPv4协议来设计的,如果要改变协议,成本和时间的代价会很大。而且现在有DHCP和NAT技术配合上IPv4可以缓解该问题

端口

端口号是一个无符号2个字节的整数uint16_t,在一台主机上唯一标识一个进程。在编写通信程序时,必须告诉计算机,发往哪个端口的数据应该交给我处理。一个端口只能被一个进程占用,但是一个进程可以使用多个端口(多端口多服务)。
在网络通信的每条数据中,都会包含源端端口号对端端口号----标识了这个数据从哪个进程发送出来,要交给哪个进程来处理

网络通信协议

计算机之间的传输媒介是光信号和电信号. 通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息. 要想传递各种不同的信 息, 就需要约定好双方的数据格式
网络通信协议:网络通信中的数据格式约定(协议-约定)----遵循统一协议标准,才能实现实质通信,实现网络互联。
协议分层:根据通信场景不同,提供的服务不同,使用的协议不同进行的层次划分。典型协议分层有两种,OSI七层参考模型TCP/IP五层模型

OSI七层参考模型
该模型采用分层结构化信息,将整个网络按照功能划分为7层,由低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP/IP五层模型

TCP/IP五层模型 功能 协议及设备
物理层 负者物理光电信号的传输 以太网协议(ETC),典型设备集线器
链路层 负者相邻设备之间的数据传输,网卡硬件地址的描述 以太网协议(MAC地址),典型设备交换机
网络层 负责地址管理和路由选择,主机IP地址的描述 IP协议,典型设备路由器
传输层 使源端和目的端主机上的对等实体可以进行会话,端与端的描述 TCP、UDP
应用层 面向用户的层次,为用户提供服务,负责应用程序之间如何沟通,通信数据格式的约定 HTTP、FTP、DNS、DHCP

网络通信数据的封装与拆封流程

AP1 先将其数据交给本主机的应用层。在应用层,将应用程序数据加上必要的控制信息(应用层的报头)Hs就变成了应用层的协议数据单元(数据包),向下传给传输层。报头(Header)及报尾(Tailer)是对等实体间为了实现有效的相互通信所需加上的控制信息,增加报头、报尾等控制信息的过程称为封装。封装后得到的应用层数据包被称为应用层协议数据单元(APDU)。
传输层收到这个数据单元后,加上本层的控制信息 H4、变成了传输层的协议数据单元,即分段(Segment),向下交给网络层。网络层收到这个分段后,加上本层的控制信息 H3就变成了网络层的 IP 分组,并向下交给数据链路层。在数据链路层;控制信息被分成两部分,分别加到收到的 IP 分组的首部(H2)和尾部(T2),变成数据链路层的帧(Frame)。帧再向下传到物理层,由于物理层是比特流的传送,所以不再加控制信息。此时比特流传送从首部开始。再往下,将其转换为电信号或光信号通过传输介质传送到接收端。

在接收端,当数据逐层向上传递时,各种报头及报尾将被一层一层地剥去,这样的过程称为拆封。例如,数据链路层在将数据交给网络层之前要去掉相应的帧头和帧尾,还原成网络层的IP分组,网络层则在将数据交给传输层之前要去掉分组报头,以此类推,最后数据以APDU 的形式到达接收方的应用层。

网络字节序

字节序:cpu对数据在内存中以字节为单位的存取顺序
主机字节序:一个主机字节序的大小端取决于cpu架构—X86 / MIPS
大端字节序:低地址存高位
小端字节序:低地址存低位
例如int a = 0x01020304在大小端不同的存储方式
char* b = (char*)&a 内存低地址 b[0] b[1] b[2] b[3] 内存高地址
大端字节序:b[0] = 01 b[1] = 02 b[2] = 03 b[3] = 04
小端字节序:b[0] = 04 b[1] = 03 b[2] = 02 b[3] = 01

主机字节序对网络通信的影响:不同字节序的主机进行通信容易造成数据二义

网络字节序:是网络通信中的字节序标准(将自己的数据的字节序转换成标准字节序后再进行传输),从而避免了因为主机字节序不同而造成的数据二义。网络字节序的标准是大端字节序
并非所有的数据都要进行网络字节序的转换
如何判断哪些数据需要字节序转换:存储单元大于一个字节的数据类型需要字节序转换,例如int16_tint32_tint64_tshortlong等。以单字节为存储单元的数据不需要字节序转换,例如uint8_tchar
如何判断一主机是大端字节序还是小端字节序

TCP协议和UDP协议的区别及使用场景

1、TCP是面向连接的传输层协议。UDP是无连接传输层协议,面向数据报
2、TCP是点对点服务。UDP是多对多连接交互通信
3、TCP是可靠的、无差错、无丢失、面向字节流的通信协议,速度慢但是是可靠传输。UDP是尽最大努力交付,速度快但不保证可靠性。

使用场景
TCP:应用于安全性要求高的场景(文件传输)
UDP:应用于实时性要求高的场景(视频,音乐传输)

网络 计算机网络预备知识相关推荐

  1. 网络编程预备知识之IP地址和端口

    话不多说,我们写了跟着一些教程写了一些程序,可是却不知道IP地址和端口的作用就尴尬了,IP地址和端口的作用如下: IP地址--Internet中的主机要与别的机器通信必须具有一个IP地址,就像两台手机 ...

  2. 网络编程套接字之预备知识

    目录 预备知识: 一.源IP地址和目的IP地址 二.源MAC地址和目的MAC地址 三.端口号与SCOKET 四.区分TCP与UDP协议 预备知识: 前言:IP 和 MAC 都是地址,都用来标识连接到网 ...

  3. 计算机网络中网络拓扑,计算机网络基础知识:不同的网络拓扑结构对网络的影响...

    导语:中公小编今天带大家了解计算机网络拓扑结构的相关知识,并认识不同的网络拓扑结构对网络影响有哪些.通过思考题与解答的形式,希望考生可以开拓思维,一起思考.加强对计算机网络基础知识的认识与记忆. 思考 ...

  4. 计算机性能指标ppt,计算机网络—评价网络的性能指标知识讲解.ppt

    <计算机网络-评价网络的性能指标知识讲解.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<计算机网络-评价网络的性能指标知识讲解.ppt>文档请在 ...

  5. 计算机网络知识初步教案,高中信息技术教案(网络)-计算机网络基础知识

    课课题题第1节计算机网络基础知识 课课题型综合课 教学目的1.了解计算机网络的分类及其系统构成:2.懂得计算机网络的基本应用:3.掌握Internet的基础知识. 教学重点1.计算机网络系统构成:2. ...

  6. 计算机通信网络的基础知识,计算机网络基础知识之通信方式

    $2.1.3 通信方式 在计算机内部各部件之间.计算机与各种外部设备之间及计算机与计算机之间都是以通信的方式传递交换数据信息的.通信有两种基本方式,即串行方式和并行方式.通常情况下,并行方式用于近距离 ...

  7. 简述计算机通信网络的技术指标,计算机网络基础知识之数据通信中的主要技术指标...

    $2.1.2 数据通信中的主要技术指标 数据通信的任务是传输数据信息,希望达到传输速度快.出错率低.信息量大.可靠性高,并且既经济又便于使用维护.这些要求可以用下列技术指标加以描述. 1.数据传输速率 ...

  8. 计算机网络san,SAN存储区域网络技术基础知识

    SAN存储区域网络技术基础知识 存储区域网络(SAN)是一种高速网络或子网络,提供在计算机与存储系统之间的数据传输.存储设备是指一张或多张用以存储计算机数据的磁盘设备.一个 SAN 网络由负责网络连接 ...

  9. 计算机及网络维护知识,计算机网络维护知识

    3.把各种应用软件安装到E盘,至于游戏可装在F盘,G盘用来存放影音文件. 4.对C盘再进行一次碎片整理,然后进行完下面的第二大步后再把虚拟内存设置到C盘上! ​​​二虚拟内存的设置 ​将虚拟内存设置成 ...

最新文章

  1. 面试官比较看重简历中的哪些维度,有什么写简历的技巧、建议和总结?
  2. python读取excel表格-python怎么读取excel表格
  3. 用C/C++编写window服务
  4. python redis集群_Python3 redis集群连接 (带密码验证)
  5. 分布式压测系列之Jmeter4.0第一季
  6. 【Stanford Online】Engineering: Algorithms1 NO.5 QuickSort Algorithm
  7. Razor语法(四)
  8. [洛谷P2463][SDOI2008]Sandy的卡片
  9. git根据commit生成patch(转载)
  10. 华为m2青春版刷机android6,华为揽阅M2青春版线刷刷机教程_揽阅M2 LTE版救砖rom刷机包...
  11. 微信公众号怎么把网页链接地址添加
  12. PMU电池管理配置与io-domain电源域
  13. 再见了繁琐的Excel,掌握数据分析处理技术就靠它了
  14. 世界杯 叮当 机器人 树莓派_世界杯营销大战,移动互联网谁捧起了大力神杯
  15. python中的numpy函数算相关系数_扩展库numpy的函数corrcoef()用来计算相关系数矩阵。...
  16. 小米电视屏蔽广告规则
  17. PowerBuilder中设置Autosize Height的问题
  18. linux中如何搭建本地软件仓库
  19. 使用 VMware Player 创建适合封装的虚拟机(转自IT天空Skyfree)
  20. 计算机专业大一用电脑吗,大一新生需要笔记本电脑吗 大一带笔记本有用吗

热门文章

  1. linux yum安装redis5.0,CentOS 7安装Redis 5.0.5并加入Systemd服务
  2. linux flush 磁盘,linux 磁盘IO栈和优化思路
  3. python中的代码块用啥表示_python代码里出现是啥意思
  4. linux debian 8.3 发布时间,Robolinux 8.3 发布下载,基于 Debian 的 Linux 发行
  5. php mysql网页评论,PHP / MySQL:如何在您的网站中创建评论部分
  6. 基于JAVA+SpringMVC+Mybatis+MYSQL的在线问卷答题系统
  7. 剑指offer:剪绳子(找规律,贪心算法,动态规划)
  8. 内存映射处理大文件[转载]
  9. N 层应用程序中的数据检索和 CUD 操作 (LINQ to SQL)
  10. CentOS7(mini) 急速部署ASP.NET应用