网络编程基础知识

Posted baijinqiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络编程基础知识相关的知识,希望对你有一定的参考价值。

什么是网络编程

一、什么是网络

  1. 计算机领域中,网络是是信息传输、接收,共享的虚拟平台
  2. 通过他把各个点,面,体的信息联系到一起,从而实现这些资源的共享
  3. 网络是人类发展史上最重要的发明,提高了科技和人类社会的发展

1、局域网

电脑,手机,打印机连接到一个路由器上实现互相通信,这个网络就叫局域网

2、互联网

无数个局域网组合在一起组成互联网

3、网络编程

  1. 网络编程从大的方面说是对信息的发送和接收
  2. 通过操作相应的Api调度计算机硬件资源,并利用传输管道(网线)进行数据交换的过程

二、七层网络模型-OSI

  1. 应用层:HTTP、FTP、SMTP、TELNET

  2. 表示层

  3. 会话层

  4. 传输层:TCP、UDP

  5. 网络层:IP

  6. 数据链路层

  7. 物理层

    技术分享图片

三、Socket与TCP、UDP

1. What is scoket?

  1. socket简单来说是对IP地址与端口的结合协议
  2. 一种地址与端口结合的描述协议

2. socket的组成和作用

  1. 在网络传输中用于唯一表示两个端点之间的连接
  2. 端点:包括(IP + Port)
  3. 4个要素:客户端地址、客户端端口、服务器地址、服务器端口

3. socket传输原理

1. socket之TCP

TCP是面向连接的通信协议,通过三次握手建立连接,通信完成需要拆除连接,TCP是端到端的了解

TCP有反馈,所以会有成功和失败说法

TCP/IP协议中,两个进程间的通信只要是C/S模型

2. socket之UDP

UDP是面向无连接的通信协议,所以可以实现广播发送,并不局限于端到端哦

UDP只管发送,并不管反馈

四、报文,协议,Mac地址

1. 报文段

报文段是指TCP/IP协议传输过程中,起着路由导航作用

用以查询各个网段的,IP地址、交换协议等IP数据包

报文段充当整个TCP/IP协议数据包的导航路由功能报文在传输过程中会不断的封装成组,包,帧来传输

2. 传输协议

协议顾名思义,其实就是一种规范,一种约束

约定大于配置,在网络传输中依然适用;网络传输流程是健壮的,稳定的,得益于基础的协议组成简单来说,就是A-->B的传输数据,B能识别,反之,B-->A的数据A也能识别,这就是协议

3. Mac地址

英文:Media Access Control或者Medium Access Control的缩写

译为媒体访问控制,或者为物理地址,硬件地址

用来定义网络设备的地址

例如:44-45-53-54-00-00,和身份证类似

五、IP、端口、远程服务器

1. IP地址

互联网中的协议地址,常见的有IPV4和IPV6

IP地址由32位二进制数组成,常以XXX.XXX.XXX.XXX形式表示,每一组XXX表示小于或者等于255的十进制数

例如:192.168.152.2

分为A、B、C、D、E五大类,其中E属于保留的地址

总数量大约42亿个。最终于2011年2月用完

IP地址255.255.255.255为受限的广播地址

IPV6总共128位长,可以标识地球上的每一个砂子

2. 端口

如果把IP比作一间房子,端口就是出入房子的窗户或者门

特殊端口:不能直接使用的地址

20、21-FTP
53-DNS
80-HTTP
443-HTTPS

总数:65536个。

3. 数据传输层次

技术分享图片

4. 远程服务器

局域网IP地址互联网IP地址的区分

六、Socket-UDP

  • 一种用户数据报协议,又称用户数据报文协议
  • 是一个简单的面向数据报的传输层协议,是一个非连接协议
  • TCP和UDP,TCP是一个无状态的面向连接协议,传输可靠,UDP是面向传输的协议,不可靠的。
  • UDP优点:结构简单,无校验,传输快,容易丢包,可广播
  • 例子:音频/视频通话,直播*,客户端游戏

以上是关于网络编程基础知识的主要内容,如果未能解决你的问题,请参考以下文章

网络基础知识

java 网络编程---基础知识和概念了解

linux基础2-网络基础知识篇

JAVA基础知识之网络编程——-网络基础(多线程下载,get,post)

网络编程——基础知识

超详细的计算机网络基础知识总结 第四章:网络层