美文网首页
网络编程学习----(1)网络通讯基础知识

网络编程学习----(1)网络通讯基础知识

作者: 艾剪疏 | 来源:发表于2018-08-28 22:00 被阅读51次

1 多台机器之间通讯的基本原理
2 什么是协议
3 TCP/IP协议参考模型
4 TCP/IP模型与OSI模型的比较
5 TCP/IP 协议数据封装的过程
6 TCP/IP各个层次的简介

一、多台机器之间通讯的基本原理

  • 1 找到对方IP。
  • 2 数据需要发送到对方指定的应用程序上。为了标识应用程序,所以给这些网络应用程序都用数字进行标识。为了方便称呼这个数字,叫做“端口”,也叫逻辑端口。
  • 3 协议:定义通讯规则,这个通讯规则称为协议。国际组织定义了通用协议TCP/IP。
  • 4 IP地址段:IPV4(4段0-255字段使用)和IPV6(6段,包括数字)
  • 5 网络传输三要素:IP、端口和协议。

2 什么是协议

为了使数据可以在网络上从源传递到目的地,网络上所有设备需要“讲”相同的“语言”。描述网络通信中“语言”规范的一组规则就是协议。

(1) 协议分层

网络通信的过程很复杂:数据以电子信号的形式穿越介质到达正确的计算机,然后转换成最初的形式,以便接收者能够阅读。为了降低网络设计的复杂性,将协议进行了分层设计。
分层设计的意义:

  • 用户服务层的模块设计可相对独立于具体的通信线路和通信硬件接口的差别;
  • 而通信服务层的模块设计又可相对独立于具体用户应用要求的不同;

(2) OSI分层--七层框架

image.png

3 TCP/IP协议参考模型

由于OSI模型和协议比较复杂,所以并没有得到广泛的应用。于是20世纪70年代中期美国国防部为ARPANET开发了TCP/IP网络体系结构, TCP/IP是一组用于实现网络互连的通信协议。Internet网络体系结构以TCP/IP为核心。
基于TCP/IP的参考模型将协议分成四个层次和5个层次,四层分别是:网络访问层、网际互连层、传输层(主机到主机)、和应用层。


image.png

(1)TCP/IP各层对应的协议

image.png

(2)常用网络协议

image.png
image.png

4 TCP/IP模型与OSI模型的比较

相同点:

  • 两者都是以协议栈的概念为基础;
  • 协议栈中的协议彼此相互独立;
  • 下层对上层提供服务;

不同点:

  • OSI是先有模型;TCP/IP是先有协议,后有模型;
  • OSI适用于各种协议栈;TCP/IP只适用于TCP/IP网络;
  • 层次数量不同;

5 TCP/IP 协议数据封装的过程

以传输层采用TCP或者UPD、网络层采用IP、链路层采用Ethernet。

用户数据经过应用层协议封装后传递给传输层,传输层封装TCP头部,交给网络层,网络层封装IP头部后,再交给数据链路层,数据链路层封装Ethernet帧头和帧尾,交给物理层,物理层以比特流的形式将数据发送到物理线路上。

image.png

6 TCP/IP各个层次的简介

(1)物理层-网络的基础

物理层是TCP/IP模型的最底层

功能:物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境, 它利用传输介质为数据链路层提供物理连接。

(2)数据链路层——以太网

数据链路可以粗略地理解为数据通道。

功能:数据链路层是为网络层提供服务的,解决两个相邻结点之间的通信问题,传送的协议数据单元称为数据帧。

数据链路层的重要知识点:

  • 数据链路层为网络层提供可靠的数据传输;
  • 基本数据单位为帧;
  • 主要的协议:以太网协议;
  • 两个重要设备名称:网桥和交换机。

(3) 网络层

  • (1)定义了基于IP协议的逻辑地址
  • (2) 连接不同的媒介类型
  • (3) 选择数据通过网络的最佳路径

网络层的重点为:

  • (1)、网络层负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能;

  • (2)、基本数据单位为IP数据报;

  • (3)、 包含的主要协议:
    IP协议(Internet Protocol,因特网互联协议);
    ICMP协议(Internet Control Message Protocol,因特网控制报文协议);
    ARP协议(Address Resolution Protocol,地址解析协议);
    RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)。

  • (4)、 重要的设备:路由器

(4)传输层

传输层负责端到端(end-to-end)的传输(这里的“端”指源主机和目的主机)


image.png

功能:为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。

传输层的重点:
(1)、传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题;
(2)、包含的主要协议:TCP协议(Transmission Control Protocol,传输控制协议)、UDP协议(User Datagram Protocol,用户数据报协议);
(3)、重要设备:网关。

(5)应用层

应用层对应于OSI参考模型的高层,为用户提供所需要的各种服务,例如:FTP、Telnet、DNS、SMTP等,是用户与网络的接口。该层通过应用程序来完成网络用户的应用需求,如文件传输、收发电子邮件等。

应用层协议可分为3类:
(1)依赖于TCP的应用协议,如远程终端协议Telnet,文件传输型的电子邮件协议SMTP,文件传输协议FTP,超文本传输协议HTTP,外部网关协议BGP等。
(2)依赖于UDP的协议,例如单纯文件传输协议TFTP,简单网络管理协议SNMP,域名系统DNS,内部网关协议RIP,动态主机配置协议DHCP和引导程序协议BOOTP等。
(3)依赖于TCP和UDP的协议,如通信用管理信息协议CMOT。当然,一些没有标准化的建立在TCP/ IP协议簇之上的用户应用程序(或专用程序)也属于应用层。


image.png

END

相关文章

  • 网络编程学习----(1)网络通讯基础知识

    1 多台机器之间通讯的基本原理2 什么是协议3 TCP/IP协议参考模型4 TCP/IP模型与OSI模型的比较5 ...

  • 网络入门

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

  • Android网络通信中的GET和POST请求流程和区别

    标签(空格分隔): 网络框架(基础知识) --- 在此输入正文 Android中的网络请求涉及到请求网络和网络通讯...

  • python网络编程基础

    1.socket编程 socket又叫套接字socket编程其实就是用代码来实现进行网络通讯的两个端;套接字就是实...

  • IO

    java网络编程 阻塞IO NIO 1. java网络编程 基础知识1.ip地址和端口号2.tcp/udp协议3....

  • Java网络编程

    在正式讲解之前,我们先来看看一些基本基础知识,只有知道这些知识,才能更好的学习好网络编程,这些基础知识如下: 1....

  • 01-网络入门

    一、网络基础知识介绍 1、为什么要学习网络编程? 在移动互联网时代,移动应用的特征有几乎所有应用l都需要用到网络,...

  • IO

    一、java网络编程 基础知识/Socket 1.基础知识 1)IP地址和端口号(区分具体的通信程序) 2)TCP...

  • Java开发学习之路

    Java开发的学习之路 基础知识 编程语言:Java Python C 基本算法 基本网络知识:TCP/IP HT...

  • 关于IPv6被拒的问题解决

    使用网络通讯框架; 避免使用 IPv4 专用的 API; 避免使用硬编码地址。 1> 使用网络通讯框架;也就是是说...

网友评论

      本文标题:网络编程学习----(1)网络通讯基础知识

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