前言 简单编写一下tcp例子. 正文 我们常说IOS有7层,实际上也只有4层,或者这样说简单的说是4层. 首先是数据链路层,首先这一层解决了什么问题呢?为什么要有这一层呢? 首先要抛开有操作系统的意识,因为它为我们做了太多东西了,摆在你面前的只有两个终端和一根网线. 数据链路层定义了在单个链路上如何传输数据.这些协议与被讨论的各种介质有关.示例:ATM,FDDI等.数据链路层必须具备一系列相应的功能,主要有:如何将数据组合成数据块,在数据链路层中称这种数据块为帧,帧是数据链路层的传送单位:如何控…
前言 前文我们介绍了网络协议的各层,同时也介绍了一下我们在编写代码时候的服务端的accept.bind.listen.connect.send做了什么. 可以说是从宏观的角度,或者代码开发的角度来说的,在此我觉得还不够具体. 同样我想解释一下为什么我说服务端listen之后,客户端已经可以进行tcp连接了,同样可以发送消息了. 正文 首先我们的tcp连接网图: 前提,这个时候服务端只是listen了,并没有accept.且客户端调用了connect,同时send 了hello word了. 第一…
前言 本文介绍一些tcp的例子,然后不断完善一下. 正文 服务端: // See https://aka.ms/new-console-template for more information using System.Net; using System.Net.Sockets; var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); var ipAddress = IP…
前言 tcp的包的格式可以看我以前的计算机网络整理,下面这些周边只是为了开发时候我们能用到一些理论知识. 正文 首先要介绍的就是域名,为啥有域名这东西呢?单纯站在网络的角度上讲这属于应用层的东西了. 如果站在万物互联的角度上讲,把互联网看做是一台大型电脑的话,那么域名就相当于句柄了. 句柄这东西解释一下,句柄(Handle)是一个是用来标识对象或者项目的标识符,可以用来描述窗体.文件等,值得注意的是句柄不能是常量. Windows之所以要设立句柄,根本上源于内存管理机制的问题,即虚拟地址.简而言…
前言 tcp的关闭不是简单粗暴的,相对而言是友好优雅的,好聚好散吧. 那么友好的关闭方式是这样的: 假设这里是客户端请求关闭的,服务端倒过来. 客户端:我要请求关闭 服务端:我接收到你的请求了,等我把要发的数据发完. 服务端:我要发的数据发完了,可以关闭了. 客户端:好的,我已经执行清理工作了,关闭结束. 那么这个时候为什么服务端直接告诉客户端可以直接关闭了呢? 为什么服务器端要做一些事情呢,到底有啥用. 回到设计的角度上,理论上是越简单越好的,遇到了什么问题,才使得我们要增加一个步骤呢. 那么…
前言 本文不会去介绍tcp的具体协议,因为这个tcp 应该不能说是单纯的连接和传输数据这么简单,里面还有很多机制. 正文 首先介绍一下什么是协议族(protocal Family),举个例子PF_INET 为ipv4 协议族了. 为什么有一个族的概念呢?因为吧,ipv4 有很多协议,地址解析协议ARP(Address Resolution Protocol).逆地址解析协议RARP(Reverse Address Resolution Protocol).互联网控制报文协议ICMP(Intern…
前言 简单的说,UDP 没有 TCP 用的广泛,但是还有很多是基于UDP的程序的,故而简单介绍一下. 正文 秉承节约脑容量的问题,只做简单的介绍和例子,因为自己几乎也没怎么用过UDP. 只是了解和知晓其中的用途,那么设计方案的时候有特定的场景,那么可以参考. UDP 和 TCP 最大的不同的地方是传输方式,不然他们也不会在传输层进行分叉. UDP 不知道对方是否存在,那么会直接发送信息出去,对方也不会告诉你是否收到了,是否需要重传. 有些人把TCP 比作是接打电话,那么UDP就像是投递邮件了.…
前言 以前也整理过吧,写了几篇之后,感觉没啥整理的必要了然后就放弃了,最近又想整理一下. 正文 这篇对应的是:https://www.cnblogs.com/aoximin/p/12235333.html,可以说是这篇的重写吧. 首先介绍一下什么是socket的,如果搞学术的不知道,他们可能要求的比较严,但是对于码农来说,socket可以说是向操作系统申请网络资源. 这个资源可以让我们发送数据和接收数据,这样就可以了.就像我们上面那篇文章写的,操作系统就是服务端,我们写的都是客户端,我们做的就是…
HTTP连接 HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用. HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接.从建立连接到关闭连接的过程称为"一次连接". 1)在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接. 2)在HTTP 1.1中则可以在一次连接…
谢希仁版<计算机网络>中的例子是这样的,"已失效的连接请求报文段"的产生在这样一种情况下:client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server.本来这是一个早已失效的报文段.但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求.于是就向client发出确认报文段,同意建立连接.假设不采用"三次握手",那么只要server发出确认,新的…