ProgrammingNotes
  • README
  • accounting会计学
  • Apache
  • ar
  • asciidoc
  • AssemblyLanguage汇编语言
  • authorization授权
    • 1.jwt
    • 2.oauth
  • C语言
    • C++
  • cache
  • Computer计算机相关
    • 1.reinstallSystem重装系统
    • 2.vhd
    • 3.bulidWeb建站
    • 4.computerOrganization计算机原理
  • config配置文件相关
  • ContainerTechnology
    • 1.docker
    • 2.kubernetes
  • cs计算机科学
    • 1.api
      • 1.1.restful
      • 1.2.graphQL
      • 1.3.openAPI
      • 1.4.swagger
    • 10.blockchain区块链
      • 10.1.bitCoin比特币
    • 11.characterEncoding字符编码
    • 12.map
      • 12.1.百度地图
      • 12.2.qgis
      • 12.3.openLayers3
      • 12.4.postGIS
    • 13.ai人工智能
    • 14.machineLearning机器学习
    • 15.ioT物联网
    • 16.microservices微服务
    • 17.serverless无服务架构
    • 2.uml
    • 3.designPattern
    • 33.compilation_tool编译工具
      • 33.1.gradle
      • 33.2.maven
    • 4.devOps
      • 4.1.ci
        • 4.1.1.jenkins
        • 4.1.2.github_actions
        • 4.1.3.team_city
      • 4.2.argoCD
    • 6.dataVisualization数据可视化
    • 7.abandonTechnology可放弃的技术
    • 8.bigData大数据
      • 8.1.streamComputing流计算
      • 8.2.edgeComputing边缘计算
    • 9.deepLearning
  • C#
  • db数据库
    • 1.sql
    • 2.noSQL
      • 2.1.redis
      • 2.2.mongoDB
      • 2.3.hbase
      • 2.4.etcd
    • 3.fileSystem文件系统
      • 3.1.fastDFS
      • 3.2.hdfs
    • 4.postgreSQL
    • 5.sqlserver
    • 6.MySQL
    • 7.oracle
    • 8.oceanBase
    • 9.influxDB
    • DatabaseSecurity数据库安全
    • pl/sql
  • Delphi
  • dorado
  • education
  • english
  • frontEnd前端
    • 1.html
      • 1.1.h5
      • 1.2.webSocket
      • 1.3.html2pdf
    • 10.1.wonder
    • 10.webGL
    • 2.w3C规范
      • 2.1.webAPIs
    • 3.css
    • 4.dom
    • 5.xhtml
    • 6.webAssembly
    • 7.ajax
    • 8.fetch
    • 9.picture
  • git
    • 1.gitbook
    • 2.svn
    • 3.github
    • 4.travis_ci
  • golang
    • go_cloud
    • go_crawler
    • goroutine
    • hydra
  • hardware
  • ios
  • java
    • 1.jvm
    • 2.java高级特性之多线程
    • 3.javafx
    • 4.java网络编程
    • 5.java类加载和反射
    • 6.jms
    • 7.java_cloud
    • 8.jsp
    • 9.spring
  • js
    • 1.npm
    • 13.mockJS
    • 19.bootstrap
    • 2.nodeJS
    • 25.echarts
    • 3.angular
      • 3.1.angularCLI
      • 3.2.angularMaterial
    • 4.react
      • 4.3.reactNative
      • 4.4.next
    • 5.vue
      • 5.1.vue-CLI
      • 5.2.vuex
      • 5.3.axios
      • 5.4.vue-router
      • 5.5.element-ui
      • 5.6.vueCore
      • 5.7.nuxt
    • 6.compilation_tool编译工具
      • 6.1.webpack
      • 6.2.parcel
      • 6.3.grunt
    • 7.lib第三方库
      • 7.1.jQuery
      • 7.2.lodash
    • TypeScript
      • 8.1.tslint
    • Deno
    • JS设计模式
    • ECMAScript
    • JS
    • JS6
    • NativeScript
    • RXJS
    • V8
  • linux
    • 1.vim
    • 2.shell
    • 3.shellScript
    • 4.ubuntu
    • 5.makefile
    • 6.centOS
  • markdown
  • markup_lang
    • JSON
    • YAML
  • math
    • 1.algorithm算法
    • 2.cryptology密码学
    • 3.computerGraphics计算机图形学
    • 4.dataStructure数据结构
  • MC消息通信
    • MQ消息队列
      • 1.kafka
      • 2.rabbitMQ
      • 3.redis
      • 4.activeMQ
      • 5.rocketMQ
      • 6.nats
    • MQTT
      • EMQ
    • RPC
      • gRPC
  • mobile
    • android
      • 1.kotlin
      • 2.weixin
      • 3.miniProgram
    • cordova
    • dart
    • flutter
    • ios
      • xcode
    • ReactNative
  • network网络
    • 2.ss
    • 3.http
    • 4.kcp
    • 5.nmap
    • 5G
    • 6.webCrawler
  • news重要新闻
  • Philosophy哲学
    • AnCoderPrepares程序员的自我修养
    • 软件工程的语录
  • php
  • popularizationOfScience科普
  • protocol
    • 1.rpc
  • python
  • readingNotes读书笔记
    • 1.profession专业笔记
    • 2.sql_Antipatterns
    • 3.unix_Network_Programming
    • 4.the_Docker_Book
  • rust
  • scriptingLanguage
    • 2.lua
    • 3.regularExpression正则表达式
    • 4.julia
    • 5.ruby
  • security安全
  • server服务器相关
    • nginx
    • OpenResty
  • software&tool软件和工具
    • 1.vscode
    • 11.plsqldev
    • 17.androidStudio
    • 3.虚拟机VirtualMachine
    • 4.jetBrains
    • 5.eclipse
    • 7.visualStudio
    • 8.office系列
  • softwaretest软件测试
    • JUnit
  • ssh&ssm
    • 2.hibernate
    • 1.spring
  • unix
    • hackintosh
    • mac
  • vr
  • windows
    • terminal&DOS
    • windows10
    • Wine
  • word一些术语
  • zztemp草稿
    • temp
    • temp4study
    • temp4studyLater以后再学的
Powered by GitBook
On this page
  • network
  • 一 概述
  • 3 常识
  • 4 文档等
  • 三 基础
  • 0 架构
  • 五 经验
  • 六 问题
  • 1 Failed to connect to 127.0.0.1 port 10010
  • 2 Could not resolve host: raw.githubusercontent.com
  • 七 待整理

Was this helpful?

network网络

network

一 概述

计算机通信的各种模型、协议。该笔记和protocol笔记是互补关系。

3 常识

3.1 关于本地下载、远程下载和点对点下载

下载的文件就存在那个网站自己的服务器上,下载时从那个网站自己的服务器下载,叫做本地下载; 下载的文件没有在那个网站自己的服务器上,而是在其他服务器上,网站只是提供一个下载链接让你从他们以外的服务器上下载,叫做远程下载; 下载的文件不存在于任何一个服务器上,而是在网络里千千万万的电脑上,网站提供一个链接给下载软件,下载软件根据这个链接从网络中寻找存有这个文件的电脑然后下载,这叫做点对点下载。

3.3 HTTP和TCP的关系

TCP是传输层,而http是应用层。HTTP 是基于 TCP/IP 协议的应用层协议。简单的说

  1. TCP定义的是数据传输和连接方式的规范:就是建立连接和传输数据包(只传输不处理包里的数据),包的组装还原是OS完成的,组装好后就把它们转交给应用程序。TCP 数据包里面有一个端口(port)参数,就是用来指定转交给监听该端口的应用程序。

  2. HTTP定义的是传输数据的内容的规范:它不涉及数据包(packet)传输,但是规定了客户端和服务器之间的通信格式,默认使用80端口。

3.3 cdn

全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。依靠部署在各地的边缘服务器,平衡中心服务器的负荷,就近提供用户所需内容,提高响应速度和命中率。

3.4 DNS 污染

DNS 污染,是指一些刻意或无意制造出来的数据包,把域名指向不正确的 IP 地址,阻碍了网络访问。

为什么会有DNS污染

4 文档等

  1. 《UNIX网络编程 卷1:套接字联网API(第3版)》

三 基础

0 架构

常见名词: ethernet(以太网):一种计算机局域网组网技术

主流的网络结构:有三种

  1. OSI七层模型

  2. TCP/IP四层模型

OSI七层模型和TCP/IP四层模型区别:

  1. 在协议开发之前,就有了OSI模型,所以OSI模型具有共通性,而TCP/IP是基于协议建立的模型,不适用于非TCP/IP的网络。

  2. 实际应用中,OSI模型是理论上的模型,没有成熟的产品;而TCP/IP已经成为国际标准。

1 iso/osi(Open System Interconnect)七层模型

这是一种事实上被TCP/IP 4层模型淘汰的协议。因为该模型过于庞大、复杂,在当今世界上没有大规模使用。从上往下(从最后一层第一层)依次是:

  1. 应用层:用户接口,OSI参考模型中最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。

    1. 常见应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP

  2. 表示层:数据的表现形式、特定功能的实现(压缩、加密等)

  3. 会话层:应用会话点管理、同步

  4. 传输层:可靠与不可靠的传输(tcp/udp)、传输前的错误检测(端口检测)、流控

  5. 网络层:提供逻辑地址(即ip地址,包括自己和对方的)、选路()

  6. 数据链路层:成帧、用mac地址访问媒介、错误检测与修正

  7. 物理层:设备间比特流的传输、物理接口(网线、音频线接口不同)、电气特性(比如网线1326能通就行,其它可以不通)

常识:

  1. 为方便记忆可以将七层从高到低视为:All People Seem To Need Data Processing。每一个大写字母与七层名称头一个字母相对应。

  2. OSI参考模型中,对等层协议之间交换的信息单元统称为协议数据单元(PDU,Protocol Data Unit)。传输层及以下各层的PDU另外还有各自特定的名称

    1. 传输层:段、数据段(Segment)

    2. 网络层:包、数据包(Packet)、分组、报文

    3. 数据链路层:帧(frame)、数据帧,帧保存的最主要信息就是网卡的mac地址

    4. 物理层:比特(bit),也就是0101...

  3. 上三层是给用户服务的,下四层是实际进行数据传递的。上一层的内容由下一层的内容来传输,所以在局域网中,“包”是包含在“帧”里的。

  4. mac地址负责局域网通信,ip地址负责外网通信(?)

2 tcp/ip四层模型

从上往下(从最后一层第一层)依次是:

  1. 应用层:应用层面向不同的网络应用引入了不同的应用层协议。

    1. 有基于TCP协议的,如文件传输协议(File Transfer Protocol,FTP)、虚拟终端协议(TELNET)、超文本链接协议(Hyper Text Transfer Protocol,HTTP)

    2. 也有基于UDP协议的。

  2. 传输层:TCP/UDP

  3. 网际互联层(也叫网络层):IP/ARP

  4. 主机到网络层(也叫网络接口层)

常识: 3. 为什么有三次握手:数据包不能保证一定到达,两军问题() 4. 交换机是数据链路层,而ip是网络层,所以交换机不认识ip 5. 网关一般指的具有路由功能的设备 6. 如果配置了DHCP服务器,就不用手动配置ip

3 Captive Portal

也叫Captive Web Portal(CWP)。中文通常译作"强制主页"、"强制门户认证"、"强制登录门户"。是一个登录Web页面,通常由网络运营商或网关在用户能够正常访问互联网之前拦截用户的请求并将一个强制登录或认证主页呈现(通常是通过浏览器)给用户。该页面可能要求用户输入认证信息、支付、接受某些条款或者其他用户授权等,随后用户才能被授权访问互联网。该技术可以为后端提供鉴权计费。广泛用于移动和个人宽带服务,包括有线电视、商业WiFi、家庭热点等,也可用于访问企业和住宅区有线网络,经常在酒店,商场,银行,麦当劳等公共场合见到。

实现策略:实现Captive Portal的方法有很多,常见的几种方式有:

  1. DNS拦截:拦截所有DNS请求且返回认证主机IP地址(设置了强制主页),这样用户访问任何网站都会看到同一个强制主页。

  2. HTTP重定向:利用HTTP重定向功能将所有的HTTP请求重定向到认证主机,如此一来,用户的发出的任何HTTP请求都会得到重定向后的强制主页。当用户通过认证后,便不再重定向用户请求。

  3. IP跳转:把所有IP包里的目标地址改为认证主机地址,在认证主机上进行404跳转,当然是跳转到强制主页了。

  4. 内核层劫持:当网关收到一个访问外网地址(80端口)的TCP SYN请求包后,立即伪造一个来自外网地址的TCP ACK包。客户端收到此伪造的响应后会误认为外网主机可以连接便再次发送ACK,此时TCP握手成功。客户端发起请求,网关再次劫持后回应ACK+PUSH包,其中就包含强制主页。

连接WiFi后自动弹出认证页面:单单网关实现了Captive Portal还不够,还不能自动弹出认证页面。需要操作系统支持才能实现在网络连接后主动弹出认证页面的功能。认证页面有的是浏览器窗口有的不是,具体由操作系统版本决定。

  1. 苹果:iOS,还有Mac OS接入无线网络后,会自动检测网络是否通。如果不通,则会自动弹出一个页面,让用户去登录。Apple把这种功能叫做Captive Network Assistant(CNA)

五 经验

  1. 查看自己的外网ip

    1. https://ifconfig.me/

六 问题

1 Failed to connect to 127.0.0.1 port 10010

2 Could not resolve host: raw.githubusercontent.com

七 待整理

  1. 交换机只认识mac不认识ip?那局域网的ip有什么意义?局域网的ip需要去固定吗,怎么感觉是自动固定的?手动固定有用吗?

  2. qq现在还是udp吗,为什么这么稳定

  3. 局域网的pc对外的ip地址是一样的吗?那外网的数据传进来交换机是怎么分发的呢?比如两个网页请求,ip一样的话,外网的主机怎么区分谁是谁呢?

  4. 为什么tcp包头(含端口)在ip包头的里层

  5. 为什么收发不是一个端口?

  6. com.cn为什么可以同时出现

  7. 递归和迭代查询

  8. 局域网,怎么通信?

  9. Socks 代理与应用层代理、HTTP层代理不同、VPN代理

  10. 解析ip地址获取用户的系统位置等信息

  11. 全双工千兆网,半双工是什么意思

  12. 内网穿透

  13. 什么才能算在一个网段,比如192.168.106.xxx和192.168.100.xxx就不算一个网段?

PreviousReactNativeNext2.ss

Last updated 9 months ago

Was this helpful?

通过网站查找raw.githubusercontent.com的ip地址,然后放到hosts里面

https://www.ipaddress.com
https://my.oschina.net/u/3490860/blog/1613093