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

计算机网络:网络基础、TCP编程

一、计算机网络学习计划

        1.网络基础 + tcp编程 
2.udp编程 
3.http + 小项目 
------------------
4.服务器编程 
5.数据库 
6.html
7.在线商城

二、网络基础

(一)目的:实现不同主机进程间通信

(二)TCP/IP协议:实现不同硬件体系结构、不同软件间的通信

(三)IP地址:用来唯一的标识一台主机

        1.   IPv4 地址 . . . . . . . . . . . . : 192.168.0.150
子网掩码  . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.0.1

        2.IP = 网络号+主机号

        3.IP本质为32位的数值,用点分十进制转换而来

        3.子网掩码与IP地址相与来区分网络

        4.www.baidu.com --DNS(域名解析)-->  183.2.172.17 
|
V
子网掩码 255.255.255.0
|
V
是           不是 
|               |
发到局域网     发到外网

(四)通信分层

        1.通信:物理链路、逻辑链路

        2.三类分层

        

        3.OSI模型(开放的系统互联模型)

                7     应用层    //你好 
6     表示层    //压缩 加密 
5     会话层    //管理一次通信过程 
4     传输层    //传输过程中网络信息 控制 
3     网络层    //网络间如何通信 
2    数据链路层 //01组合的数据帧 
1     物理层   //物理通信 电气特性 

        4.OSI模型

                4.1.物理层:①主要定义物理设备标准:网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。②主要作用是: [传输比特流](就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是我们常说的数模转换与模数转换)。③这一层的数据叫做"比特"(bit)。

               4.2.数据链路层:①定义了如何让格式化数据以帧为单位进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。如:串口通信中使用到的115200、8、N、1②这一层传输的数据:帧数据 (按到一定格式组织起来的一组数据)
4.3.网络层:(路由器)①在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。 如:常见的路由器,就是这在一层工作。②这一层传递的数据:数据段(包) 
4.4.传输层:transmit control ①定义了一些传输数据的协议和端口号(WWW端口80等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。②常常把这一层数据叫做段。

               4.5.会话层:①通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。 ②主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)。如:上网,看视频。刷新 --- 好了!
4.6.表示层:①可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。
例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码(EBCDIC),而另一台则使用美国信息交换标准码(ASCII)来表示相同的字符。②如有必要,表示层会通过使
用一种通格式来实现多种数据格式之间的转换。
4.7.应用层:①是最靠近用户的OSI层。②这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务。

三、socket

(一)socket

        1.socket是网络通信的特殊文件 
2.socket也是linux系统提供的一个编程接口 ,通过这个编程接口,就可以使用到linux的网络功能 

        3.socket函数

四、传输层的协议:TCP、UDP

(一)TCP

        1.TCP(transmision control protocol):(类似 打电话)---可靠(1.连接 2.可靠传输 3.字节流)
①特点:
a.面向连接(就是在进行通信之前,必须建立好一条逻辑上的通路)
b.提供可靠传输(四个"无",无丢失,无失序,无差错,无重复)

            ②建立连接: 
tcp三次握手 目的:建立连接

                        client      ------------------  server
1           -- 我要通话     -->  1   //连接的请求 
2           <--嗯,我知道了,你可以-- //对方接听电话 喂 
3            -- 嗯,好的     -->     //喂 

            ③应用场合:
(1). 对可靠性要求较高场合
(2). QQ微信等 软件的登录时

        2.TCP(即传输控制协议):①是一种面向连接的传输层协议,它能提供高可靠性通信(即数
据无误、数据无丢失、数据无失序、数据无重复到达的通信)
②适用情况:
a. 适合于对传输质量要求较高,以及传输大量数据的通信。
b. 在需要可靠数据传输的场合,通常使用TCP协议
c. MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议

(二)UDP

        1.UDP(User datagram Protocol):(类似 生活中的广播) (1.不可靠, 2.无连接 3.数据报)
① 特点:
a.不提供可靠传输,
b.在数据发送时,不需要建立连接
②应用:
(1).小数据,但是对速度要求较高(QQ.及时文本信息,语音等),实时性要求较高合!
(2).广播,组播   //电子教师(vnc --- 广播)
(3).无线网的传输 //udp 

        2.UDP(User Datagram Protocol)用户数据报协议:①是不可靠的无连接的协议。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。
②适用情况:
a. 发送小尺寸数据(如对DNS服务器进行IP地址查询时)

                b. 在接收到数据,给出应答较困难的网络中使用UDP。(如:无线网络)
c. 适合于广播/组播式通信中。
d. MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议
e. 流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP方式进行实时数据传输

五、基于TCP和UDP网络编程

(一)通信模式

(二)TCP cs模型

(三)函数接口

        1.connect(客户端)

端口号、配套函数:

①端口号:16位的整型数据 

  0~1023                 //1024 ---知名端口号 
//http -- 80 
1024~50000         //特定端口号 
50000~                 //临时分配的端口号 

②发送的用到的函数

大小端:            发送 --- 转换 --- 网络字节序 (大端)
接收 --- 根据主机的大小端转换 

        2.bind(服务器端)

        3.accept(服务器端)

http://www.dtcms.com/a/342818.html

相关文章:

  • Seaborn数据可视化实战:Seaborn基础与实践-数据可视化的艺术
  • 数据安全管理——解读银行保险机构数据安全管理办法【附全文阅读】
  • 哈希:最长连续序列
  • 如何根据团队技术能力选择最适合的PHP框架?
  • Python 标准库--python012
  • 机器学习集成算法与K-means聚类
  • Spring两个核心IoCDI(二)
  • 【信创系统】信创系统传输文件
  • 科普:Python 中颜色的格式: RGB 格式 v.s. RGBA 格式
  • Terraform vs Ansible:基础设施即代码(IaC)工具深度对比与实战指南
  • 哈尔滨服务器托管,如何实现高效稳定运行?
  • 泛型与反射
  • MySQL--MVCC
  • MPS MPQ2013AGQ-AEC1-Z MPS芯源汽车级 同步降压转换器IC 电源传感器IC
  • 【密码学】深入浅出栅栏密码:原理、流程与实现
  • Android:compose-Scaffold组件
  • 【CS创世SD NAND征文】存储芯片在工业电表中的应用与技术演进
  • 基于Python与Tkinter开发的微博多功能自动化助手
  • 构建包含IK插件(中文分词插件)的Elasticsearch镜像
  • 分治思想在系统分流削峰中的实践与Golang前沿实现
  • RK3568项目(十六)--linux驱动开发之块设备介绍
  • C++ 序列式容器深度解析:vector、string、deque 与 list
  • 虚幻基础:曲线
  • Go 并发编程-channel
  • Java的反射与枚举
  • 贪吃蛇游戏(纯HTML)
  • 服务发现与负载均衡:Kubernetes Service核心机制深度解析
  • Vue数据的变更操作与表单数据的收集【6】
  • 动漫短剧小程序系统开发|动漫短剧小程序搭建|动漫短剧源码交付
  • 后浪来袭:NIST 轻量级密码标准化决赛圈算法剖析(ASCON、SPARKLE 等)