网络编程

  • 1 > 软件开发架构
    • 1.1 > 架构的分类
    • 1.1.1 > C/S架构
    • 1.1.2 > B/S架构
    • 1.2 > 两种架构的有缺点
  • 2 > 网络编程简介
  • 3 > 网络体系结构
  • 4 > OSI七层协议 - 1
    • 4.1 > 物理层
    • 4.2 > 数据链路层
  • 5 > 网络知识补充
  • 6 > 专业设施名词
  • 7 > OSI七层协议 - 2
    • 7.1 > 网络层
    • 7.2 > 传输层
    • 7.3 > 应用层
  • 8 > 协议
    • 8.1 > TCP协议
    • 8.2 > )UDP协议

1 > 软件开发架构

  软件开发架构即 程序员在编写软件的时候应该遵循的架构设计,类似于我们之前所写的ATM和选课系统所采用的三层架构。

1.1 > 架构的分类

  基本的软件开发架构分为 C/S架构B/S架构

1.1.1 > C/S架构

  C/S架构中C指的是client(客户端),S指的是server(服务端)。
  客户端相当于是需要体验服务的客人,服务端相当于是对外提供服务的店面。
  我们手机上下载的各种app其实都是很个大厂商的客户端。打开app使用功能的时候其实就是相当于是基于网络去到厂家的店铺中去让服务员为你提供服务。

1.1.2 > B/S架构

  B/S架构它的本质也是C/S架构,就是我们将浏览器当作访问各大厂商的客户端的介质,这样我们就无需下载相应的客户端,就可以体验的服务了。

1.2 > 两种架构的有缺点

  C/S架构:
     优势:针对客户端可以进行高度定制,让用户体验感更好。
     劣势:必须是用户下载对应的客户端才可以使用。

  B/S架构:
     优势:无需下载对应的客户端就可以体验。
     劣势:无法做到高度定制的程度,体验效果较差

2 > 网络编程简介

# 什么是网络编程网络编程的研究前提就是基于互联网,网络编程就是基于互联网编写代码。# 学习网络编程的目的/结构学习完网络编程之后就可以开发C/S架构的软件# 网络编程发展史该技术源于美国军方,实际应用场景就是军方想要实现不同计算机之间的数据交互,因为当时没有网
络编程技术的时候只能拿着U盘拷贝重要资料并携带,所有为了实现跨区域交互数据所有发明了网络编程。# 早期远程通信1.座机打电话彼此之间依赖着一根电话线2.大屁股电脑数据交互需要插网线3.智能手机数据交互需要无限网卡'''这三种通信方式都是需要一个物理链接介质才可以进行远程通信'''
# 互联网协议不同计算机之间要想实现无障碍交互,除了需要有物理链接介质之外还需要一套公有的标准这个标准就是 >>>> : 互联网协议(osi七层协议)

3 > 网络体系结构

  计算机网络中常见的体系结构有OIS参考模型和TCP/IP模型。
  OSI由国际标准协会(ISO)制定,共分为七层,由上而下依此为应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。虽然OSI由ISO制定,但其实用性较差,并未得到广泛应用。
  在OSI诞生时,因特网已实现了全世界的基本覆盖,因此市面上应用最广泛的体系结构为因特网中使用的TCP/IP体系结构,该结构包含四层,分别为应用层、传输层、网际层和网络接口层。
  此外,在计算机网络中通常以一种包含五层协议的体系结构来讲解各层之间的功能与联系,这种体系结构结合OSI和TCP/IP的优点,分为应用层、传输层、网络层、数据链路层和物理层。
  以上三种体系结构中各层的对应关系如图

  五层协议体系结构中各层的功能分别如下:
  (1)物理层:计算机体系结构的最底层,它为设备之间的数据传输提供可靠的环境。
  (2)数据链路层:简称链路层,该层将从网络层获取的数据报组装成帧,在网络结点之间以帧为单位传输数据。
  (3)网络层:为分组交换网上的不同主机提供通信服务,在进行通信时,将从传输层获取的报文段或数据报封装成分组或包。
  (4)传输层:为应用进程提供连接服务,实现连接两端进程的会话。
  (5)应用层:为应用进程提供服务,定义了应用进程间通信和交互的规则。

4 > OSI七层协议 - 1

4.1 > 物理层

  物理链接介质,传递的是电信号。

4.2 > 数据链路层

  1. 规定了二进制数据的分组方式
  2. 规定了‘以太网协议’
    但凡能够接入互联网的计算机都必须有一块网卡
    每块网卡在出厂的时候都会被烧制一个全世界独一无二的编号
    该编号是由12位16进制数组成,前六位是产商编号,后六位是流水线号。
    这个独一无二的编号也有一个称呼 .>>>: ‘mac地址’
    PS:基于mac地址就可以实现计算机之间的数据通信了

5 > 网络知识补充


# 1.什么是互联网将计算机彼此链接到一起的介质# 2.互联网建立的目的基于互联网做数据交互# 3.上网的本质基于网线去访问其他计算机上面的资源

6 > 专业设施名词


1.交换机让接入交换机的多台计算机之间彼此互联2.局域网由交换机组成的网络称之为局域网(一个区域)3.广播与单播广播:在交换机中群发单播:定向回复消息(记录mac地址)4.路由器将局域网彼此链接起来并支持数据交互互联网其实可以看成是由多个局域网链接在一起
'''
在局域网中可以直接基于mac地址实现数据交互但是可能会产生广播风暴:交换机中同一时间出现太多广播操作
mac地址只能用于局域网交互数据 不能跨局域网传输
'''

7 > OSI七层协议 - 2

7.1 > 网络层

  网络层的核心就是IP协议,它规定了每台接入互联网的计算机都必须有一个IP地址(取决于网线)。IP地址目前有两个版本—— IPV4 、IPV6 。
  IPV4 :点分十进制
  地址范围在 (0.0.0.0~255.255.255.255)之间,随着社会的进步,计算机的使用越来越普遍IPV4地址已经不够用了,所有衍生出来了IPV6。
  IPV6 : 十六进制
  IPV6的地址范围广泛,甚至可以用来表示地球上每一粒沙子。


IP地址分为公网IP和私网IP公网IP是可以直接被浏览器访问到的 但是私网IP是不可以的我们所有人的电脑默认使用的都是私网IP公网IP需要花钱购买并且需要实名认证并备案很多非法网站都是在国外注册备案

7.2 > 传输层

  核心在于PORT(端口协议)。之所以一台计算机上面可以运行多个数据交互的软件例如微信、qq、钉钉。他们都是从内存中获取数据但是却不会乱套的原因就是端口协议的存在。
  端口号类似于手牌号,用于标识一台计算机上面正在运行的应用程序。端口号的范围是 (0~65535)。
  其中 0~1024 :是系统常用的端口号,1024 ~ 8000:是常用的软件端口号。我们以后写项目的时候推荐使用8000之后的端口。
  在使用端口号的时候需要注意以下情况:

1.同一时间同一台计算机上面端口号不能冲突2. 端口号是动态分配的例如:打开微信随机分配一个没有被使用的端口号8888,关闭微信重新打开那么会随机分配可能还是8888也可能是其他

   其他知识了解


IP地址:用于标识全世界独一无二的一台接入互联网的计算机
PORT号:用于标识一台计算机上面的某一个应用程序
IP+PORT:能够标识全世界独一无二的一台计算机上面的某一个应用程序我们日常生活使用浏览器访问的各个网址其实就是IP+PORTwww.baidu.com                 好记14.215.177.29:80              难记ip:port                           (基本格式)很多常见的服务端都不需要指定端口 只要访问了ip地址内部去会自动映射域名解析将好记的地址解析成真正的地址www.baidu.com   解析        202.108.22.5:80
"""

7.3 > 应用层

   这里主要就是完全取决于程序员自己,使用什么协议。
   例如:HTTP协议 HTTPS协议 FTP协议 自定义协议

8 > 协议

   计算机网络通信基于TCP/IP,TCP/IP实际上并不是协议而是协议族,它由多种协议构成,包括TCP协议、UDP 协 议、IP协议等,其中TCP、UDP协议应用在传输层; IP协议应用在网络层。

8.1 > TCP协议

   即传输控制协议,该协议是一种面向连接的、可靠的、基于字节流的传输协议。在传递数据之前,收发双方会先通过一种被称为“三次握手”的协商机制使通信双方建立连接,为数据传输做好准备。为了防止报文段丢失,TCP会给每个数据段一个序号,使接收端按序号顺序接收数据。若接收端正常接收到报文段,向发送端发送一个确认信息;若发送端在一定的时延后未接收到确认信息,便假设报文段已丢失,并重新向接收端发送对应报文段。此外,TCP协议中定义了一个校验函数,用于检测发送和接收的数据,防止产生数据错误。

   通信结束后,通信双方经过“四次握手”关闭连接。因为TCP连接是全双工的 (全双工指交换机在发送数据的同时也能够接收数据,两者同步进行,类似语音通话,双方在说话的同时也能 够听到对方的声音) ,所以每个方向必须单独关闭连接,即连接的端需先发送关闭信息到另一端。 当关闭信息发送后,发送关闭信息的一端不会再发送信息, 但另一端仍可向该端发送信 息。

8.2 > )UDP协议

  即用户数据报协议,它是一种无连 接的传输层协议。UDP的收发双方不存在连接,当按照UDP协议传输数据时,发送方使用套接字文件发送数据报给接收方,之后可立即使用同一个套接字发送其他数据报给另一个接收方; 同样,接收方也可以通过相同的套接字接收由多个发送方发来的数据。

  UDP不对数据报进行编号,它不保证接收方以正确的顺序接收到完整的数据,但会将数据报的长度随数据发送给接收方。虽然UDP面向无连接的通信,不能如TCP般很好地保证数据的完整性和正确性,但UDP处理速度快,耗费资源少,因此在对数据完整性要求低、对传输效率要求 高的应用中一般使用 UDP协议传输数据。

网络编程 —— 基础理论知识相关推荐

  1. 多实例多进程网络编程PHP,php socket网络编程基础知识(四):多进程

    标签:status   传递   windows   返回   修改   队列   _for   响应   关联 说明 php在web编程时是不需要考虑多进程的,但整个php流程是涉及到多进程的,只不 ...

  2. 视频教程-游戏网络编程必备知识-Unity3D

    游戏网络编程必备知识 网名:海洋,CSDN社区讲师,3D游戏引擎开发者,IT讲师,计算机图形学方向研究生,曾在浙江大学CAD&CG;国家重点实验室学习.从事IT行业15年,主导或参与了18款大 ...

  3. Linux网络编程基础知识

    Linux网络编程基础知识 1. 协议的概念 1.1 什么是协议 1.2 典型协议 2 网络应用程序设计模式 2.1 C/S模式 2.2 B/S模式 2.3 优缺点 3 分层模型 3.1 OSI七层模 ...

  4. Java面向对象程序开发——网络编程入门知识

    目录 七.网络编程入门知识 软件结构 网络通信协议 协议分类 网络编程三要素 TCP通信程序 概述 Socket类 构造方法 成员方法 ServerSocket类 构造方法 成员方法 简单的TCP网络 ...

  5. Java 网络编程基础知识

    Java 网络编程基础知识 基础概念 计算机网络的基本概念 ​ 网络:多台计算机使用网络设备互联在一起,计算机之间可以进行通信,这样就组成了一个计算机网络. ​ 网络设备:集线器(HUB),路由器,交 ...

  6. Linux网络编程小知识(字节序、IP格式、函数、子网掩码、DNS域名解析代码实现)

    参考:网络编程前的一些小知识–Linux笔记 作者:一只青木呀 发布时间: 2021-04-12 23:19:10 网址:https://blog.csdn.net/weixin_45309916/a ...

  7. python网络编程基础知识_python网络编程基础

    一.客户端/服务器架构 网络中到处都应有了C/S架构,我们学习socket就是为了完成C/S架构的开发. 二.scoket与网络协议 如果想要实现网络通信我们需要对tcpip,http等很多网络知识有 ...

  8. 网络编程基础知识概括帮助你了解架框组成客户端服务端架构

    阅读目录 1.楔子 2.客户端/服务端架构 3.网络基础 4.套接字(socket)初使用 写python代码 你现在已经学会了写python代码,假如你写了两个python文件a.py和b.py,分 ...

  9. Linux C网络编程基本知识

    第 1 章:TCP/IP 网络编程基础 1.  客户端和服务器程序必须运行在相同操作系统上吗?为什么? 答:不是,在网络中计算机之间的彼此通信标准遵循 TCP/IP 协议,并在操作系统内核中实现.而具 ...

最新文章

  1. 人群运动--Scene-Independent Group Profiling in Crowd
  2. java show过时_Java中show() 方法被那个方法代替了? java编程 显示类中信
  3. python代码安全性问题_这个python代码对注入安全吗?
  4. Java朝花夕拾の实现Comparable接口
  5. 州的先生 python界面 代码完整版(注释)
  6. 基于WebMatrix的轻量级Web开发系列课程
  7. mysql sql优化与调优机制详解_MySQL性能调优——锁定机制与锁优化分析详解
  8. 如何在教学中利用计算机网络,教师论苑(二十二)| 利用XMind思维导图优化计算机网络基础课堂教学...
  9. 计算机硬盘的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  10. 如何让一个未知宽高的div垂直居中
  11. 0441-Impala动态资源池及放置规则使用
  12. watch和computer的区别
  13. 计算机安装程序的文件名一般是什么,[电脑基础知识]什么是文件的后缀名.doc
  14. classes是什么意思怎么读_class是什么意思_class的翻译_音标_读音_用法_例句_爱词霸在线词典...
  15. android局域网打印机共享文件夹,如何设置电脑使安卓手机能访问局域网共享的文件...
  16. 自动化建模 | H2O开源工具介绍
  17. Android Window悬浮窗窗口全屏(隐藏导航栏状态栏)
  18. C++实现“23”抽签小游戏
  19. 仿京东收货地址三级联动
  20. word图文混排复制到eWebEditor图片不显示

热门文章

  1. 水晶报表 双面打印_打印机办公用纸选购指南!(推荐收藏)
  2. PHP图片压缩到指定的大小
  3. 关于Android SD卡
  4. iOS开发 音频合成,改变音轨音量,改变背景音乐音量,音频剪辑
  5. 用excel做一个家庭流水账本 增加一些统计功能 和大家分享
  6. 这世上本来没有路,走的人多了,也便成了路
  7. 三维激光扫描系统基本原理及分类
  8. apmserv5.2.6 mysql启动失败_win7(xp) APMServ5.2.6 Apache启动失败,MYSQL启动失败 的解决办法...
  9. python自动化看什么书_python自动化测试书籍
  10. 柔性电子,常用材料总结