一、引言
昨天讲了闭包与装饰器,今天给大家讲一下网络编程.
二、计算机网络概述
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用一个校验和函数来校验数据是否有错误,在发送和接收时都要计算校验
流量控制和阻塞管理:
流量控制用来避免发送端发送过快而使得接收方来不及接收
三、结语
今天概念类的东西比较多,大家可以多看一下,明天会讲一些编码转换的知识点.
1474

被折叠的 条评论
为什么被折叠?



