news 2026/4/22 12:55:29

网络编程入门:从IP到TCP全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
网络编程入门:从IP到TCP全解析

一、引言

昨天讲了闭包与装饰器,今天给大家讲一下网络编程.

二、计算机网络概述

1.网络的概念

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

2.为什么要学网络

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

3.ip地址概述

思考一个问题,当我们在计算机中使用微信和朋友聊天时,信息是如何精准的传递到他的计算机中的呢?

3.1 IP地址的作用

通过IP地址找到网络中唯一一台设备,然后可以跟这个设备进行数据通信。所以我们就可以回答上面的问题了:

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

3.2 IP地址的表现形式

IP地址一共有4位,第1位,1~223,第234位,0~255

注意事项:

① IP地址分为两类 : IPv4和IPv6

② IPv4是目前使用的IP地址

③ IPv6是未来使用的IP地址

4.端口和端口号的概念

4.1计算机通信原理

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

其实,每运行一个程序都会有一个端口,想要给对应的程序发送数据,找到对应的端口即可。端口就是传输数据的通道,好比教室的门,是数据传输必经之路。

而且每一个端口都会有一个对应的端口号(操作系统为了统一管理这么多端口,就对端口进行了编号,这就是端口号,端口号其实就是一个数字,好比我们现实生活中的门牌号),想要找到端口通过端口号即可,如:飞秋软件的默认端口号就是2345。

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

4.2端口号扩展

4.2.1知名端口号

知名端口号是指众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务,比如21端口分配给FTP(文件传输协议)服务,22端口分配给SSH(安全外壳协议,主要用于远程连接与文件传输),25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务,443端口分配给HTTPS服务等等。

4.2.2动态端口号

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

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

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

设置端口建议8000以后

5.TCP协议概述

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

5.1TCP概述

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

TCP通信步骤:① 创建连接 ② 传输数据 ③ 关闭连接

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

5.2TCP的特点

5.2.1面向连接

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

5.2.2可靠传输

TCP采用发送应答机制:

通过TCP这种方式发送的每个报文段都必须得到接收方的应答才认为这个TCP报文段传送成功

超时重传:

发送端发送一个报文之后就会启动定时器,如果指定时间内没有得到应答就会重新发送这个报文段

错误校验:

TCP用一个校验和函数来校验数据是否有错误,在发送和接收时都要计算校验

流量控制和阻塞管理:

流量控制用来避免发送端发送过快而使得接收方来不及接收

三、结语

今天概念类的东西比较多,大家可以多看一下,明天会讲一些编码转换的知识点.

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 10:57:23

Semgrep终极指南:快速掌握跨平台静态代码分析利器

Semgrep终极指南:快速掌握跨平台静态代码分析利器 【免费下载链接】semgrep Lightweight static analysis for many languages. Find bug variants with patterns that look like source code. 项目地址: https://gitcode.com/GitHub_Trending/se/semgrep 告别…

作者头像 李华
网站建设 2026/4/15 11:13:06

LangChain RAG-MultiVector实现多向量检索文档

01. 多表征/向量索引多个维度记录信息 等同于为文档块生成 多个向量,支持的方法如下:把文档切割成更小的块:通过检索更小的块,但是查找其父类文档(ParentDocumentRetriever)。摘要:使用 LLM 为每…

作者头像 李华
网站建设 2026/4/22 9:41:12

鸿蒙PC UI控件库 - SecondaryButton 次要按钮详解

视频演示地址: 📋 目录 概述特性快速开始API 参考使用示例主题配置最佳实践常见问题总结 概述 SecondaryButton 是控件库中的次要按钮组件,适用于次要操作场景。与 PrimaryButton 的主要区别在于: PrimaryButton:实…

作者头像 李华
网站建设 2026/4/20 18:48:27

不花一分钱!2025年免费降低AI率的5个有效方法与工具指南

在论文、报告、内容创作越来越严格的时代,查AI率、检测AI率、降AI率 已经成为学生、写作者、博主的日常需求。很多同学因为 AI率过高被导师指出“AI痕迹太重”,甚至退回重写。本文今天一次性告诉你: 检测AI率应该注意什么 免费查AI率的网站有…

作者头像 李华
网站建设 2026/4/21 6:47:44

Vue脚手架快速搭建指南

一,Vue 技术文章大纲 1,Vue 框架概述 Vue.js 简介:轻量级、渐进式前端框架核心特点:响应式数据绑定、组件化开发、虚拟 DOM适用场景:单页应用(SPA)、复杂交互界面 2,Vue 核心概念…

作者头像 李华