news 2026/6/12 19:38:02

网络编程入门:从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/6/12 12:42:04

基于Java的安全生产培训认证智慧管理系统的设计与实现全方位解析:附毕设论文+源代码

1. 为什么这个毕设项目值得你 pick ?安全生产培训认证智慧管理系统整合了多种功能模块,包括会员管理、培训计划与资源管理、考试及证书处理等。该系统不仅优化了传统模式下的繁琐操作流程,提高了工作效率和数据准确性,还引入智能分析工具辅助…

作者头像 李华
网站建设 2026/6/12 4:55:36

5步搞定Reddit视频批量制作:告别手动操作的终极效率指南

5步搞定Reddit视频批量制作:告别手动操作的终极效率指南 【免费下载链接】RedditVideoMakerBot Create Reddit Videos with just✨ one command ✨ 项目地址: https://gitcode.com/GitHub_Trending/re/RedditVideoMakerBot 还在为每天手动制作Reddit视频而头…

作者头像 李华
网站建设 2026/6/10 6:32:46

单目深度估计方法: 理论与实战视频课

高薪计算机视觉进阶指南:单双目视觉深度估计一站式通关 引言:深度估计——开启三维视觉世界的钥匙 在计算机视觉的黄金赛道上,深度估计技术正成为高薪岗位的核心竞争力。从自动驾驶的精准感知到AR/VR的沉浸体验,再到工业检测的毫…

作者头像 李华
网站建设 2026/6/12 13:58:34

cosyVoiceV50功能改进版(自制)

在b站两位大佬:“王知风”和“刘悦的技术博客”的启发下。以王知风大佬的cosyVoiceV50项目为基地,我在基础上增加了自定义音色池的功能。 可以将【3s极速复刻,跨语种复刻】2中模式克隆出的音色添加到预训练音色中,成为自定义音色池在预训练模…

作者头像 李华
网站建设 2026/6/10 16:50:49

Node.js Redis客户端ioredis完整使用指南

Node.js Redis客户端ioredis完整使用指南 【免费下载链接】ioredis 项目地址: https://gitcode.com/gh_mirrors/ior/ioredis 还在为Node.js项目中如何高效连接Redis而烦恼吗?ioredis作为当前最流行的Redis客户端,提供了简单直观的API和强大的功能…

作者头像 李华
网站建设 2026/6/10 18:55:41

VinylMusicPlayer:Android 开源音乐播放器完整使用指南

VinylMusicPlayer:Android 开源音乐播放器完整使用指南 【免费下载链接】VinylMusicPlayer A material designed music player for Android 项目地址: https://gitcode.com/gh_mirrors/vi/VinylMusicPlayer VinylMusicPlayer 是一款基于 Material Design 设计…

作者头像 李华