美文网首页
Kotlin网络编程(2)网络基础

Kotlin网络编程(2)网络基础

作者: 狼性代码人 | 来源:发表于2019-06-30 06:32 被阅读0次
  • 网络结构

    • 客户端服务器结构网络 (C/S)
    • 对等结构网络 (P2P)
  • TCP/IP 协议

  • IP 地址

  • 端口

一、网络结构

  网络结构就是网络的构建方式,目前流行的有 客户端服务器结构网络对等结构网络

  • 1. 客户端服务器结构网络 (C/S)

  客户端服务器 (Client Server, C/S) 结构网络是一种主从结构的网络。服务器一般处于等待状态,如果有客户端请求,服务器响应请求并建立连接提供服务。服务器是被动的,有点像在餐厅吃饭时的服务员。而客户端是主动的,像在餐厅吃饭的顾客。

  生活中很多网络服务都采用这种结构,例如 Web 服务、文件传输服务 和 邮寄服务等。虽然它们存在的目的不一样,但基本结构是一样的。这种网络结构与设备类型无关,服务器不一定是计算机,也可以是手机等移动设备。

  • 2. 对等结构网络 (P2P)

  对等结构网络也叫点对点网络 (Peer to Peer,P2P),每个节点之间是对等的。每个节点即 使服务器又是客户端

  对等结构网络分布范围比较小。通常在一间办公室或一个家庭内,因此它非常适合于移动设备间的网络通信,网络链路层由 蓝牙WIFI 实现。

二、TCP/IP 协议

  TCP/IP 协议是有 IP 和 TCP 两个协议构成的,IP 协议是一种低级的路由协议,它将数据拆分成许多小的数据包,并通过网络将他们发送到某一特定地址,但无法保证所有包都能抵达目的地,也不能保证包的顺序。

  由于 IP 协议传输数据的不安全性,网络通信时还需要 TCP 协议,传输控制协议是一种高层次的协议,是面向连接的可靠数据传输协议,如果有些数据包没有收到会重发,并对数据包内容进行检查且保证数据包的顺序,所以该协议保证数据包能够安全地按照发送时的顺序送达目的地。

三、IP 地址

  为实现网络中不同计算机之间的通信,每台计算机都必须有一个唯一的标识,这就是 IP 地址,TCP/IP 使用 IP 地址来标识源地址和目的地地址。最初所有的 IP 地址都是由 32 位数字 构成,由 4 个 8 位 二进制数组成,每 8 为之间用圆点隔开,如:192.168.1.1,这种类型的地址通过 IPv4 指定 (即:IPv4 由32位数字构成,4组8位二进制数组成,每组间用圆点分割)。而现在有一种新的地址模式称为 IPv6,IPv6 使用 128 位数字表示一个地址,分成 8 个 16 位块。尽管 IPv6 比 IPv4 有很多优势,但是由于习惯的问题,很多设备还是采用 IPv4。

  在 IPv4 地址模式中 IP 地址分为 A、B、C、D 和 E 这5类:

  • A 类地址用于大型网络,地址范围:1.0.0.1 ~ 126.155.255.254。
  • B 类地址用于中型网络,地址范围:128.0.0.1 ~ 191.255.255.254。
  • C 类地址用于小型网络,地址范围:192.0.0.1 ~ 223.255.255.254。
  • D 类地址用于多目的地信息的传输,有时作为备用。
  • E 类地址保留,仅做实验和开发用。

  另外,有时还有用到一个特殊的 IP 地址 127.0.0.1。127.0.0.1 称为回送地址,是指本机的地址,主要用于网络软件测试及本地机进程间的通信,使用回送地址发送数据,不进行任何网络传输,值在本机进程间通信。

四、端口

  一个 IP 地址标识一台计算机,每一台计算机又有很多网络通信程序在运行,会提供网络服务或进行通信,这就需要不同的端口进行通信。如果 IP 地址比作电话号码,那么端口号就是分级号码。进行网络通信时不仅要指定 IP 地址,还要指定端口号。

  TCP/IP 系统中的端口号是一个 16 位的数字,它的范围是 0 ~ 65535。小于 1024 的端口号保留给预定义的服务,如 HTTP 是 80,FTP 是 21,TeInet 是 23, Email 是 25 等。除非要和那些服务进行通信,否则不应该使用小于 1024 的端口。

相关文章

  • Kotlin网络编程(2)网络基础

    网络结构客户端服务器结构网络 (C/S)对等结构网络 (P2P)TCP/IP 协议IP 地址端口 一、网络结构  ...

  • 网络基本了解

    网络基础 问题:为什么要学习网络编程?(1)网络编程是一种实时更新应用数据的常用手段(2)网络编程是开发优秀网络应...

  • 网络编程基础2

    网络编程基础 我们今天接触网络,首先教你怎么搭建服务器和学习一些vim的命令可以参考这个链接 链接:搭建服务器 链...

  • iOS之网络基础(网络请求)

    一.网络基础 1 网络基础 001网络编程 (1)网络编程是一种实时更新应用数据的常用手段 ...

  • iOS-网络基础及应用-Http

    3.网络基础 3.1 网络基础 001 问题:为什么要学习网络编程? 回答:(1)网络编程是一种实时更...

  • Android应用开发:网络编程2

    网络编程 Java基础:网络编程 Uri、URL、UriMatcher、ContentUris详解 Android...

  • Http协议

    网络编程 Java基础:网络编程 Uri、URL、UriMatcher、ContentUris详解 Android...

  • Kotlin网络编程(1)概述

      现在的应用程序都离不开网络,网络编程是非常重要的一门技术。Kotlin 标准库网络编程源自于 Java 提供的...

  • 网络入门

    一、网络基础知识介绍 1、为什么要学习网络编程?---pptx介绍。 2、网络的基本概念---pptx介绍。 >什...

  • Android 网络编程 目录

    Android 网络编程 目录 Android 网络编程1 Http协议Android 网络编程2 Okhttp缓...

网友评论

      本文标题:Kotlin网络编程(2)网络基础

      本文链接:https://www.haomeiwen.com/subject/mxsxcctx.html