
OSI七层模型

数据:

internet connection:
- 点对点
- 全双工Full-duplex:双向同时可以传输信息
- 可靠:最终会按照顺序收到所有包
Network
SAN(System Area Network):cluster级别
LAN(Local …):building, campus
WAN(Wide …):world
internet:一堆network以共享的router互联, Internet: internet的最著名实现
Socket API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| int getaddrinfo(const char *host, const char *service const struct addrinfo *hints, struct addrinfo **result)
void freeaddrinfo(struct addrinfo *result)
const char *gai_strerror(int errcode)
int socket(int domain, int type, int protocol)
int bind(int sockfd, SA *addr, socklen_t addrlen)
int listen(int sockfd, int backlog)
int accept(intlistenfd, SA *addr, int *addrlen) int connect(int clientfd, SA *addr, socklen_t addrlen)
int open_listenfd(int port)=socket+bind+listen int open_clientfd()=socket+connect
|
socket
socket address= IP地址:port
,然后doit()做一些读写和处理
tiny.c
DNS
1 2
| $> nslookup localhost 127.0.0.1
|