컴퓨터로 연결하여 TCP/IP(Transmission Control Protocol/Internet Protocol)라는 통신 프로토콜을 이용해 정보를 주고받는 컴퓨터 네트워크이다.
- Inter + Net = Internet (컴퓨터 사이에 형성되는 그물망)
노드들이 자원을 공유할 수 있게 하는 디지털 전기통신망의 하나이다.
즉, 분산되어 있는 컴퓨터를 통신망으로 연결한 것을 말한다.
컴퓨터 네트워크의 요소들(링크, 노드 등)을 물리적으로 연결해 놓은 것, 또는 그 연결 방식을 말한다.
국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다.
Layer 1 - 물리 계층
전선, 전파, 광섬유, 동축케이블, 도파관, PSTN, 리피터, DSU, CSU, 모뎀
Layer 2 - 데이터 링크 계층
이더넷, 토큰링, PPP, HDLC, 프레임 릴레이, ISDN, ATM, 무선랜, FDDI
Layer 3 - 네트워크 계층
IP, ICMP, IGMP, X.25, CLNP, ARP, RARP, BGP, OSPF, RIP, IPX, DDP
Layer 4 - 전송 계층
TCP, UDP, RTP, SCTP, SPX, 애플토크
Layer 5 - 세션 계층
TLS, SSL, ISO 8327 / CCITT X.225, RPC, 넷바이오스, 애플토크
Layer 6 - 표현 계층
XDR, ASN.1, SMB, AFP
Layer 7 - 응용 계층
HTTP, SMTP, SNMP, FTP, 텔넷, SSH & Scp, NFS, RTSP
인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 통신규약(프로토콜)의 모음이다. 인터넷 프로토콜 슈트 중 TCP와 IP가 가장 많이 쓰이기 때문에 TCP/IP 프로토콜 슈트라고도 불린다.
Layer 1 - 네트워크 엑세스 계층
이더넷, Wi-Fi, 토큰링, PPP, SLIP, FDDI, ATM, 프레임 릴레이, SMDS
Layer 2 - 인터넷 계층
IP (IPv4, IPv6)
Layer 3 - 전송 계층
TCP, UDP, DCCP, SCTP, IL, RUDP
Layer 4 - 응용 계층
DNS, TFTP, TLS/SSL, FTP, HTTP, IMAP, IRC, NNTP, POP3, SIP, SMTP, SNMP, SSH, 텔넷, ECHO, 비트토렌트, RTP, PNRP, rlogin, ENRP
-> 상위 계층을 하위 계층의 세부적인 사항으로부터 독립시킴으로써 기능 단위로 모듈화 가능
-> 과다한 처리의 오버헤드와 지연시간이 증가
// 소켓 생성
#include <sys/socket.h>
int socket (int domain, int type, int protocol)
// 주소 할당 (IP 주소, Port 정보)
#include <sys/socket.h>
int bind(int sockfd, struct sockaddr *myaddr, int addrlen)
// 연결 요청 대기
#include <sys/socket.h>
int listen(int sockfd, int backlog)
// 연결 요청 수락
#include <sys/socket.h>
int accept(int sockfd, struct sockaddr *addr, int *addrlen)
// 소켓 생성
#include <sys/socket.h>
int socket (int domain, int type, int protocol)
// 연결 요청
#include <sys/socket.h>
int connect(int sockfd, struct sockaddr *server_addr, int addrlen)
라우터, 스위치, 방화벽과 같은 네트워크 장치를 위한 특화된 운영체제이다.
네트워크와 네트워크 메시지를 (이를테면 패킷) 트래픽과 대기열(큐)을 제어하고, 여러 명의 사용자가 파일과 같은 네트워크 리소스에 접근할 수 있게 해 주며, 보안을 포함한 특정한 관리자 기능을 제공하는 소프트웨어이다.