美文网首页
socket基础随笔一

socket基础随笔一

作者: 0d3f575c8bef | 来源:发表于2020-04-12 12:15 被阅读0次

整个计算机网络是由不同的主机通过通信信道相连而成 ,通信信道是负责把分组报文从一个主机转发到另一个主机  报文也就是主机中的应用程序创建的字节序列

这里就需要了解一下网络分层 

实际上主机上的应用程序才是真实的用户,那么在一个主机上的某个应用程序A他是怎么把数据发送到另一个主机的程序B的呢?

我们先来说一说什么是协议 协议可以说是一种约定  他规定分组报文的结构以及如何报文进行解析  通常是为了解决某一特定问题 

现在的互联网是按照分层协议来架构的 

见上图 最顶层属于应用层 下面是传输层再往下网络层 最底层是链路层 像光纤电缆等属于这一层

报文通常由应用层的程序创建 然后应用程序通过套接字API对传输层的UDP协议和TCP协议所提供的服务进行访问

然后下面先不谈传输层,先说说网络层的ip协议,ip协议提供了一个数据报服务 ,每组报文都通过网络独立分组和分发,同时ip报文里包含有目标主机的地址

这里会有一个问题 就是 ip协议只是负责把分组报文从当前主机通过底层的链路层发送到另一台主机,但是他不能定位对主主机上具体的应用程序B  

并且IP协议也只是尽力而为 , 有可能发生数据丢失等等异常情况 , 这就需要用到传输层的两个协议 : TCP传输控制协议/UDP 用户数据报协议 

这两个协议他们有个功能就是寻址  他们可以通过端口号来定位到对方主机上的具体应该用程序B

同时TCP 建立连接时需要经过3次握手 保证消息的可靠性 也就是修复了网络层信息丢失的问题 

但UDP不能保证 他只是在网络IP层的基础上进行了扩展 能够找到对应方机的具体应用程序 依然存在消息丢失的问题

关于地址

一台主机上的应用程序A想要与另一台主机上的应用程序B进行通信  那么必须要知道对方的地址  地址由两个东西组成  那就是 IP  和端口

现在有两个版本ip地址表示法 一个叫IPv4 一个是IPv6

IPv4 是四组十进制数组成 中间用点隔开 这叫点分形式  如 12.10.22.145  每一位是四字节 也就是取值最大是255

IPv6 是由N组十六制数通过冒号分隔  如2000:fdb8:0000:0000:0001:00ab:853c:39a1

其中如果某位全是0可以省略

主机与地址是1对多的  同一个主机可以有多个ip地址 比如同时拥有ipv4 和ipv6

但同一个地址只能标识唯 一的一台主机

再来说说端口号 ip地址 就像是一栋大楼里的总机号 而端口号就像某个房间的分机号

这样通过ip+端口的方式就能定位到目标房间 也就是应用程序

其中有些特殊的ip地址如 

回环地址 他能将发送给它的报文直接回发给发送者

ipv4对应的回环地址是127.0.0.1

ipv6对应的回环地址是0.0.0.0.0.0.0.1

主机名

在网络上通信使用ip地址非常不方便 所以有时会给ip对应一个主机名 大多数情况就是所谓的域名  但互联网协议只能处理二进制的网络地址 那当使用主机名来定位目标地址时就需要一个查询渠道  DNS 也就是Domain Name System 域名 系统  ,在与目标主机通信之前 通过请求dns去获取 主机名对应的ip 地址然后再与对方进行通信 

相关文章

  • socket基础随笔一

    整个计算机网络是由不同的主机通过通信信道相连而成 ,通信信道是负责把分组报文从一个主机转发到另一个主机 报文也就是...

  • 动脑学院架构篇-Java Socket编程基础及深入讲解

    【Socket】Java Socket编程基础及深入讲解 Socket是Java网络编程的基础,了解还是有好处的,...

  • 1. iOS Socket 学习笔记

    一. Socket 基础知识 Socket 的位置首先上一张图, 让你知道 Socket 的位置。socket 什...

  • #Socket回顾学习笔记

    Socket学习笔记 Socket基础知识 背景 Socket概念 Socket 又称"套接字",是系统提供的用于...

  • socket编程

    一切皆socket!本文介绍socket基础,socket的基本操作,并对socket中的TCP过程说明,还有一个...

  • 2019-03-27 归纳socket

    归纳socket socket socket也称套接字,网络编程的基础。一般情况下我不喜欢直接去说socket的函...

  • PHP Socket 编程实战总结

    在进入 PHP Socket 编程实战之前,我们先来了解一下 PHP Socket 的一些基础知识。 一、基础部分...

  • TCP

    基础知识 Linux命令 查看server socket netstat -ltnp 查看socket netst...

  • 基本版socket

    基本版socket服务端 socket基础版客户端 大致思路如下,

  • Socket.IO on Objective-C

    Socket.IO on iOS 基础与简介GitHub下载地址(swift版本):socket.io-clien...

网友评论

      本文标题:socket基础随笔一

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