计算机网络
计算机网络相关
xuruhua
少说多做
展开
-
网络基础之传输层--TCP协议和UDP协议
一、端口号1、概念端口号(Port)标识了一个主机上进行通信的不同的应⽤程序;程序的身份标识,不同的服务器有不同的端口号,传输层收到数据后根据端口号来确定需要把这个数据交给哪个端口号。不同的服务器要求的协议不同,应该按照正确的格式匹配。(HTTP的格式只能交给HTTP的服务器来处理。)在TCP/IP协议中, 用 "源IP", "源端口号", "目的IP", "目的端口号", "协议号"...原创 2018-12-18 11:29:12 · 594 阅读 · 0 评论 -
数据链路层,以太网
一、数据链路层(1)数据链路层和网络层的不同:网络层侧重于整体一个点到另一个点之间的一条路径,数据是如何到达的。而数据链路层则侧重于其中的每一个小区间上的传递。用于两个设备(同一种数据链路节点)之间进行传递。(2)“同一种数据链路”:手机通过路由器上外网,手机与路由器之间通过无线网WiFi的方式进行传输的,这是一种数据链路;数据通过以太网线和运营商路由器相连,这也是一个数据链路;运营商路由...原创 2018-12-18 11:28:52 · 2967 阅读 · 0 评论 -
网络层--IP协议
一、基于UDP实现可靠传输(本质上是设计一个TCP)二、网络层:主机: 配有IP地址, 但是不进行路由控制的设备; 路由器: 即配有IP地址, 又能进行路由控制; 节点: 主机和路由 器的统称1、网络层包含了两个方面:1)、地址管理2)、路由选择三、IP协议1、协议头格式4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4;4位头...原创 2018-12-18 11:27:53 · 452 阅读 · 0 评论 -
高级IO
一、五种IO模型1、阻塞式IO:(进程没有结束时,一直等待进程结束,不做其他的事情)分为两个阶段:a、等待:等待数据,不知道数据何时发送过来,等待的时间比较长。b、拷贝:性能优化:a、优化程序,先进性测试,找到性能瓶颈,首先进行优化。b、对系统有一个充分的了解。CPU密集型:由CPU承担大部分的数据计算。因为等待的时间比较长,而拷贝的时间相对比较短,所以优化的主要任务是缩短等待的时...原创 2018-12-18 11:28:36 · 628 阅读 · 0 评论 -
IO多路转接二
一、poll函数:IO多路复用的方式之一1、接口:int poll(struct pollfd *fds, nfds_t nfds, int timeout);第一个参数为一个结构体指针,也可以理解为一个结构体数组,fds表示结构体的起始位置;第二个参数为描述结构体的元素个数;第三个参数为一个超时时间。结构体里面的内容:struct pollfd { int f...原创 2018-12-18 11:28:18 · 699 阅读 · 0 评论 -
网络通信,实现客户端和服务器端的通信
service network restart:linux下重启网络关闭防火墙:Centos6(root): service iptables stopCentos7(root): service firewaild stopscp:跨主机之间的拷贝scp [email protected]:/home/test/client ./(远端的client拷贝到当前路径下),密码为1运行ser...原创 2018-05-16 09:32:07 · 3747 阅读 · 0 评论 -
网络通信实现一个加法器
一、简单的加法器:实现客户端发送数据,服务器端计算出结果后返还给客户端proto.h# pragma once//以下的两个结构体就是我们此处自定制的应用层协议//客户端给服务器端发送的结构体typedef struct Request{ int a; int b;}Request;//服务器端给客户端相应的结构体typedef struct Response{ int sum;}Re...原创 2018-05-25 08:48:43 · 593 阅读 · 0 评论 -
网络编程套接字的应用之TCP和UDP
一、UDP 1、总结:server: (1)创建socket (2)绑定端口号 (3)循环的读取数据 (4)针对读取到的数据进行计算与处理 (5)把处理后的结果发送给客户端 client: (1)创建socket (2)给服务器发送请求(3)从服务器中读取结果2、实现代码:服务器端1、尝试从so...原创 2018-05-29 12:14:57 · 697 阅读 · 0 评论 -
线程的应用
线程的应用一、线程的创建:1.代码#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<string.h>#include<pthread.h>//p表示posix线程库void*rout(void *arg){(...原创 2018-04-07 22:04:10 · 330 阅读 · 0 评论 -
自己实现一个shell
# include<unistd.h># include<sys/wait.h># include<stdio.h># include<stdlib.h># include<string.h>char *argv[8];int argc=0;void do_parse(char *buf){ int i; int status;...原创 2018-04-15 13:12:59 · 782 阅读 · 0 评论 -
基本进程的应用
一、进程的调度算法.(1)在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。(2)系统调用在使用上,功能比较基础,对用户的要求也比较高,所以,开发者可以对部分系统调用进行适度封装,从而形成库,从而很有利于更上层用户或者开发者进行二次开发。(3)操作系统是做管理的,管理者与被管理者不直接接触,管理者通...原创 2018-04-09 18:15:56 · 224 阅读 · 0 评论