当前位置: 首页 > news >正文

网络通信要素

网络介绍

定义:将具有独立功能的多台计算机通过通信线路和通信设备连接起来,在网络管理软件及网络通信协议下,实现资源共享和信息传递的虚拟平台

在这里插入图片描述

学习网络的目的:

能够编写基于网络通信的软件或程序,通常来说就是网络编程。

在这里插入图片描述

IP地址的介绍

IP地址是分配给网络设备上网使用数字标签,它能够标识网络中唯一的一台设备,好比现实中每个人都有一个手机号。

在这里插入图片描述

注意:

  1. ip地址分为两类:IPv4 IPv6
  2. IPv4是目前使用的ip地址
  3. IPv6是未来使用的ip地址

IP地址的作用

通过IP地址找到网络中唯一一台设备,然后可以跟这个设备进行数据通信。

ifconfig和ping命令

命令名说明
ifconfig查看网卡信息
ping检查网络是否正常

在这里插入图片描述

  1. 172.16.47.199是在网络中的地址,使用ifconfig主要是查看网卡对应网络中的IP地址。

  2. 127.0.0.1表示本机地址,提示:如果和自己的电脑通信就可以使用该地址。

  3. 127.0.0.1该地址对应的域名是localhost,域名是ip地址的别名,通过域名能解析出一个对应的ip地址。

检查网络是否正常

  1. ping www.baidu.com 检查是否能上公网

  2. ping 当前局域网的ip地址 检查是否在同一个局域网内

  3. ping 127.0.0.1 检查本地网卡是否正常

端口和端口号

如果在一台电脑上使用飞秋给另外一台电脑上的飞秋发送数据并且另外的这台电脑还运行着多个软件,它是如何区分这多个软件把数据给飞秋的呢?

在这里插入图片描述

其实,每运行一个程序都会有一个端口,想要给对应的程序发送数据,找到对应的端口即可

在这里插入图片描述

端口和端口号定义

端口:

传输数据的通道,好比教室的门,是数据传输必经之路。

其实,每一个端口都会有一个对应的端口号,想要找到端口通过端口号即可

端口号:

操作系统为了统一管理这么多端口,就对端口进行了编号,这就是端口号,端口号其实就是一个数字,好比我们现实生活中的门牌号。

端口号有65536个。

最终通信流程,通过ip地址找到对应的设备,通过端口号找到对应的端口,然后通过端口把数据给应用程序

端口号的分类

按照一定的规定可以分为:知名端口号和动态端口号

知名端口号

是指众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务,比如21端口分配给FTP(文件传输协议)服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务。

动态端口号:

一般程序员开发应用程序使用端口号称为动态端口号。

动态端口号的范围是从1024到65535,如果程序员开发的程序没有设置端口号,操作系统会在动态端口号这个范围内随机生成一个给开发的应用程序使用。

当运行一个程序默认会有一个端口号,当这个程序退出时,所占用的这个端口号就会被释放。

socket介绍

到目前为止我们学习了IP地址和端口号,使用这些我们就可以在茫茫的网络海洋中进行畅游了么?No!

只知道 IP地址,端口号,但是没有工具是无法到达诗和远方的。此时就需要使用socket来完成

socket定义

socket(简称 套接字) 是程序之间通信一个工具,好比现实中的电话,当知道了对方的电话号码后需要使用电话才能进行通讯,程序之间想要进行网络通信需要基于这个socket,socket就是程序间进行网络通讯的工具。

不夸张的说,只要跟网络相关的应用程序或者软件都使用到了socket。

在这里插入图片描述

TCP介绍

之前我们学习了IP地址和端口号,通过IP地址能够找到对应的设备,然后再通过端口号找到对应的端口,再通过端口把数据传输给应用程序,这里要注意,数据不能随便发送,在发送之前要选择网络传输方式(传输协议),保证程序之间按照指定的传输规则进行数据的通信。

TCP概念

TCP的英文全拼(Transmission Control Protocol)简称传输控制协议,它是一种面向连接的可靠的基于字节流的传输层通信协议

常用于对数据进行准确无误的传输,比如: 文件下载,浏览器上网

TCP通信步骤

  1. 创建连接
  2. 传输数据
  3. 关闭连接

TCP通信模型相当于生活中的“打电话”,在通信开始之前,一定要先建立好连接,才能发送数据,通信结束要关闭连接。

在这里插入图片描述

TCP的特点

  1. 面向连接
    通信双方必须先建立好连接才能进行数据的传输,并且双方都会为此连接分配必要资源用来记录连接的状态和信息。当数据传输完成后,双方必须断开此连接,以释放系统资源。

  2. 可靠传输
    TCP采用发送应答机制
    通过TCP这种方式发送的每个报文段都必须得到接收方的应答才认为这个TCP报文段传送成功
    超时重传
    发送端发送一个报文之后就会启动定时器,如果指定时间内没有得到应答就会重新发送这个报文段
    错误校验
    TCP用一个校验和函数来校验数据是否有错误,在发送和接收时都要计算校验和
    流量控制和阻塞管理
    流量控制用来避免发送端发送过快而使得接收方来不及接收

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 在 MacOS 系统下设置终端命令别名的方法
  • 安全基础学习-SHA-256
  • 物流快递外卖管理平台系统-计算机毕设Java|springboot实战项目
  • 【面试宝典】Java面向对象面试题总结(上)
  • 【Spark】算子实现delete SQL语句
  • C语言整数溢出的问题
  • Linux学习之路 -- 进程 -- 进程间通信 -- 管道通信
  • 小程序滑动单元格
  • VS Code安装配置ssh服务结合内网穿透远程连接本地服务器详细步骤
  • 永久旋转 PDF 文件的 3 种简便方法
  • [图解]需要≠需求-《分析模式》漫谈
  • 5G:下一代无线通信技术的全面解析
  • DePT: Decoupled Prompt Tuning
  • 3. 数据结构——栈的操作实现(考研专业课学习)
  • [算法题]01 矩阵
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 2019年如何成为全栈工程师?
  • fetch 从初识到应用
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • JS+CSS实现数字滚动
  • JS变量作用域
  • js算法-归并排序(merge_sort)
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Selenium实战教程系列(二)---元素定位
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • windows下使用nginx调试简介
  • 测试开发系类之接口自动化测试
  • 规范化安全开发 KOA 手脚架
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 一个完整Java Web项目背后的密码
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (31)对象的克隆
  • (zhuan) 一些RL的文献(及笔记)
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (三)docker:Dockerfile构建容器运行jar包
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (实战篇)如何缓存数据
  • (五)IO流之ByteArrayInput/OutputStream
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)socket Aio demo
  • (转)程序员技术练级攻略
  • (转)拼包函数及网络封包的异常处理(含代码)
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .env.development、.env.production、.env.staging
  • .Net Core 笔试1