11.1 응용 계층의 개요 및 서비스
응용 계층(Application Layer)은 OSI 7계층 및 TCP/IP 모델의 최상위 계층으로, 사용자가 자원과 상호작용할 수 있도록 인터페이스를 제공하고 응용 프로세스 간의 논리적 연결(Logical Connection)을 수립하여 서비스를 수행한다.
11.1.1 응용 프로세스 간 논리적 연결
- 논리적 연결의 정의: 하위 계층(물리, 링크, 네트워크, 전송 계층)의 복잡한 패킷 라우팅, 흐름 제어, 에러 복구 매커니즘을 추상화하여, 종단의 두 응용 프로그램이 마치 하나의 가상 파이프로 직접 연결되어 1대1로 데이터를 송수신하는 것처럼 간주하는 구조이다.
- 응용층 프로토콜의 역할: 교환되는 메시지의 유형(요청/응답), 메시지의 구문(Syntax), 각 필드의 의미(Semantics), 프로세스가 메시지를 전송하고 응답하는 규칙(Timing)을 명확하게 규정한다.
11.2 네트워크 애플리케이션 패러다임
네트워크 응용 아키텍처는 제어 권한과 자원 분산 방식에 따라 클라이언트/서버 패러다임과 Peer-to-Peer(P2P) 패러다임으로 양분된다.
11.2.1 클라이언트/서버(Client/Server) 패러다임
중앙 집중식 자원 관리 구조로, 서비스를 요청하는 시스템과 서비스를 전담 제공하는 시스템의 역할이 명확하게 고정 분리된 구조이다.
- 서버 (Server):
- 대기 상태 (Passive Open): 클라이언트의 접속 요청을 수용하기 위해 고정된 Well-known 포트 번호를 열고 항상 가동(Always-on) 상태로 대기한다.
- 주소 체계: 클라이언트가 언제든 접근할 수 있도록 영구적이고 고정된 정적 IP 주소(Static IP)를 보유해야 한다.
- 자원 확장성 한계: 클라이언트의 요청 수가 폭증할 경우 대역폭 고갈 및 서버 하드웨어 자원의 병목 현상이 발생하므로, 인프라 확장을 위해 데이터센터 내부에 로드 밸런서와 다중 복제 서버 풀을 운영해야 한다.
- 클라이언트 (Client):
- 요청 주체 (Active Open): 필요할 때만 서버에 접속하여 세션을 동기화하고 서비스를 요청한다.
- 주소 체계: 대개 유동 IP 주소(Dynamic IP)를 사용하며, 다른 클라이언트 시스템과 직접적으로 통신하지 않는다. 클라이언트 프로그램 간의 직접 통신은 원천적으로 불가능하다.
11.2.2 P2P(Peer-to-Peer) 패러다임
중앙의 고성능 전용 서버에 의존하지 않고, 네트워크에 참여하는 개별 노드(Peer)들이 클라이언트인 동시에 서버의 역할(Servent: Server+Client)을 동시에 수행하는 분산형 구조이다.
- 자가 확장성 (Self-Scalability): 새로운 피어(Peer)가 자율적으로 가입할 때마다 네트워크에 새로운 서비스 요청 트래픽이 추가되지만, 동시에 해당 피어가 가진 저장 공간과 업로드 대역폭이 전체 시스템의 공급 자원으로 추가되므로 피어 수가 늘어날수록 전체 시스템 용량이 자동으로 확장되는 특성을 가진다.
- 장단점: 중앙 서버 구축 비용이 없어 인프라 유지 비용이 저하되며 결함 감내 능력이 우수하다. 그러나 각 피어의 유동적인 접속 온/오프 상태로 인해 자원의 가용성 보장이 어렵고, 중앙 통제가 불가능하여 저작권 관리 및 정보보호 격리 관점에서 취약성이 존재한다.
11.3 가상 도메인 주소 변환 프로토콜: DNS
인터넷망 상에서 호스트를 식별하기 위해 사용하는 논리 주소는 32비트(IPv4) 또는 128비트(IPv6) 이진수 주소 체계이다. 사람이 읽고 기억하기 쉬운 가상 문자열 주소인 도메인 네임(Domain Name)을 시스템이 파싱할 수 있는 실제 기계식 IP 주소로 일대일 매핑 및 변환해 주는 전 세계 분산 데이터베이스 시스템이 DNS(Domain Name System)이다.
11.3.1 계층적 도메인 네임 스페이스 (Hierarchical Name Space)
전 세계의 도메인 주소 체계는 관리를 효율화하기 위해 역트리(Inverted Tree) 형태의 계층적 구조를 가진다. 최상위 루트 노드부터 하위 노드로 내려가며 점(.)으로 구분하여 표기한다.
[ Root Level ( . ) ]
/ │
[ .com ] [ .org ] [ .kr ] <--- TLD (Top-Level Domain)
│ │ │
[ google ] [ wikipedia ] [ ac ] <--- SLD (Second-Level Domain)
│
[ suwon ] <--- Third-Level Domain
- Root Zone: 계층 구조의 최상위이며 주소의 맨 오른쪽 명시되지 않는 점(
.)에 해당한다. 전 세계에 루트 힌트 네임 서버 인프라가 분산 배치되어 있다.
- TLD (Top-Level Domain): 도메인의 목적이나 국가를 분류하는 최상위 영역이다.
- gTLD (일반 최상위 도메인):
.com (상업용), .org (비영리기관), .net (네트워크 인프라) 등
- ccTLD (국가 최상위 도메인):
.kr (대한민국), .jp (일본), .us (미국) 등
- FQDN (Fully Qualified Domain Name): 호스트 이름부터 최상위 루트 도메인까지 전체 경로를 생략 없이 명시한 절대 도메인 네임 주소이다. (예:
www.suwon.ac.kr.)
11.3.2 분산 네임 서버 시스템 (Distributed Name Servers)
하나의 중앙 서버에 전 세계 도메인 매핑 데이터를 저장하는 것은 물리적으로 불가능하므로, 계층 구조에 따라 전 세계에 네임 서버를 분산 운영한다.
- 루트 네임 서버 (Root Name Server): TLD 주소를 관리하는 네임 서버들의 IP 주소 목록을 보유하며, 질의 요청 시 해당 TLD 서버로 포인팅해 준다.
- TLD 네임 서버 (Top-Level Domain Server): 해당 최상위 도메인(예:
.com zone) 하위에 등록된 수많은 하위 도메인들의 책임 네임 서버 주소를 관리한다.
- 책임 네임 서버 (Authoritative Name Server): 특정 조직이 운영하는 실제 호스트들의 도메인명과 IP 주소 간의 실질적인 매핑 레코드를 최종 보유하고 있는 최종 권한 서버이다. (예: 수원대학교 도메인을 최종 관리하는 네임 서버)
- 로컬 네임 서버 (Local Name Server / Recursive Resolver): ISP(통신사)나 내부 네트워크 기관이 운영하는 네임 서버로, 사용자의 호스트 단말이 최초로 DNS 질의 패킷을 던지는 대상이다. 직접 레코드를 보유하지 않아도 다른 상위 네임 서버들에게 대리 질의를 수행하여 최종 결과를 알아낸 뒤 클라이언트에게 캐싱하여 전달하는 브릿지 역할을 수행한다.
11.3.3 도메인 주소 해석(Resolution) 매커니즘
도메인 조회를 수행할 때 전송층 프로토콜은 기본적으로 오버헤드가 적고 신속한 UDP 포트 53번을 사용하여 요청 및 응답 패킷을 교환한다. 주소 해석 방식은 크게 반복적 질의와 재귀적 질의로 나뉜다.
1) 반복적 질의 (Iterative Query)
로컬 네임 서버(Resolver)가 상위 네임 서버들에게 직접 단계별로 질문을 던져 최종 주소를 추적해 나가는 방식이다. 상위 네임 서버는 정답 IP를 모를 경우, "나는 모르니 다음 계층의 이 서버에게 물어보라"며 하위 네임 서버의 주소를 반환하고, 로컬 서버는 그 주소를 받아 다음 단계로 직접 재질의를 반복한다.
[클라이언트] ──(1) www.google.com 조회 요청──> [로컬 네임 서버 (Resolver)]
│
┌──────(2) 루트 서버에 질의 ───────────────────┤ (루트 왈: .com 서버로 가라)
├──────(3) .com TLD 서버에 질의 ───────────────┤ (.com 왈: google 책임 서버로 가라)
└──────(4) google 책임 네임 서버에 질의 ─────────┘ (책임 서버 왈: 실제 IP는 X.X.X.X 다)
│
[클라이언트] <──(5) 최종 IP 주소 결과 반환 ──────────────┘
2) 재귀적 질의 (Recursive Query)
질의를 받은 네임 서버가 자신이 직접 상위 서버에게 다시 물어보고 그 상위 서버가 또 상위 서버에게 물어보며, 최종 결과가 나올 때까지 질의 체인을 형성하여 역순으로 정답을 하위 서버에게 완전히 토스해 주는 방식이다. 라우터나 루트 네임 서버에 가해지는 연산 및 트래픽 부하가 극심하여 실무 인터넷망 인프라 환경에서는 루트 및 TLD 장비들이 재귀적 질의 요청을 거부(Refuse)하도록 차단 설정하는 것이 일반적이다.

11.3.4 DNS 자원 레코드 (Resource Records, RR)
네트워크 데이터베이스 테이블에 저장되는 개별 도메인 매핑 정보의 명세 포맷이다. 구조는 (Name, Value, Type, TTL) 4가지 필드로 구성되며, Type 필드 값에 따라 데이터의 성격이 결정된다.
- A 레코드 (Address): 표준 IPv4 주소 매핑 레코드이다. 호스트 도메인 이름에 대응하는 32비트 IP 주소를 매핑한다. (Name = 도메인명, Value = IPv4 주소)
- AAAA 레코드: 표준 차세대 IPv6 주소 매핑 레코드이다. 호스트 도메인 이름에 대응하는 128비트 IP 주소를 매핑한다.
- CNAME 레코드 (Canonical Name): 특정 도메인명에 대한 별칭(Alias)을 지정할 때 사용한다. (예:
test.com을 조회하면 실제 정식 원본 도메인명인 www.test.com으로 리다이렉트 파싱되도록 유도)
- MX 레코드 (Mail Exchanger): 해당 도메인 도메인 영역으로 유입되는 이메일 트래픽을 실제 수용하여 처리할 메일 서버(SMTP)의 주소와 우선순위 정보를 명시한다.
- NS 레코드 (Name Server): 특정 도메인 영역(Zone)의 도메인 질의를 전담 처리해 줄 책임 네임 서버의 도메인 주소를 명시하여 경로 권한을 위임한다.
11.4 월드 와이드 웹과 HTTP (WWW and HTTP)
월드 와이드 웹(WWW)은 인터넷 상에서 텍스트, 이미지, 멀티미디어 등 다양한 자원을 유기적으로 공유할 수 있도록 설계된 분산 정보 시스템이다. 이를 구동하는 핵심 프로토콜이 HTTP(HyperText Transfer Protocol)이다.
웹 상의 고유한 자원을 포인팅하기 위해 사용하는 표준 주소 체계이다. 구조는 크게 프로토콜 식별자, 호스트 도메인/IP 주소, 포트 번호, 자원의 경로(Path) 명세로 구성된다.
http://www.suwon.ac.kr:80/index.html
└─┬─┘ └──────┬──────┘ └┬┘ └────┬────┘
프로토콜 호스트명 포트 경로(Path)
11.4.2 HTTP 프로토콜의 특성
- 비상태성 (Stateless): 서버는 클라이언트의 상태를 별도로 보존하지 않는다. 각 요청은 이전 요청과 완전히 독립된 객체로 처리된다. 이로 인해 서버의 메모리 부하가 낮아지지만, 로그인 세션 유지 등을 처리하기 위해 응용층 수준에서 쿠키(Cookie) 및 세션(Session) 메커니즘을 상위에 덧씌워 보완한다.
- 전송층 매핑: 데이터의 유실 없는 정확한 전송을 보장하기 위해 기본적으로 TCP 포트 80번을 사용하여 상호 작용한다. (보안이 강화된 HTTPS는 TLS 암호화 레이어를 거쳐 TCP 포트 443번을 전담 사용한다.)
11.4.3 HTTP 메시지 포맷 및 상태 코드
- 요청 메시지 (Request Message): 첫 번째 라인인 요청 라인(Request Line)에 Method(GET, POST, PUT, DELETE), URL 경로, HTTP 버전을 기록한 후 헤더 필드들과 본문(Body)을 구성하여 전송한다.
- 응답 메시지 (Response Message): 첫 번째 라인인 상태 라인(Status Line)에 HTTP 버전과 함께 처리 결과를 나타내는 상태 코드(Status Code)를 실어 보낸다.
주요 HTTP 응답 상태 코드 분류
- 200 OK: 클라이언트의 요청이 서버에서 성공적으로 처리되었음을 명시한다.
- 301 Moved Permanently: 요청한 자원이 완전히 새로운 URL 주소로 영구 이동(Redirection)했음을 알린다.
- 400 Bad Request: 클라이언트가 송신한 요청 구문 자체에 오류가 있어 서버가 파싱할 수 없는 상태이다.
- 401 Unauthorized: 해당 자원에 접근하기 위해 필수적인 클라이언트 인증 자격 증명이 누락되었거나 실패했음을 뜻한다.
- 404 Not Found: 요청한 URL에 해당하는 자원을 서버 내부에서 찾을 수 없음을 선언한다.
- 500 Internal Server Error: 클라이언트의 요청은 정상이나, 서버 내부에서 로직 처리 중 예기치 못한 예외나 결함이 발생했음을 고지한다.
11.5 전통적 표준 응용 프로토콜 (FTP, 전자우편, SSH)
11.5.1 FTP (File Transfer Protocol)
네트워크 상에서 호스트 간 파일 전송을 전담하는 전통적인 프로토콜로, 두 개의 독립된 TCP 연결을 비대칭적으로 분리하여 사용하는 대역폭 분리 제어 특성을 가진다.
- 제어 연결 (Control Connection - TCP 21번 포트): 클라이언트와 서버 간의 명령어(Command) 송신 및 서버의 응답(Response) 코드를 교환하기 위한 제어 채널이다. 세션이 시작될 때 열려 종료될 때까지 반영구적으로 유지된다.
- 데이터 연결 (Data Connection - TCP 20번 포트): 실제 디렉토리 리스트나 파일 데이터를 실질적으로 스트리밍 전송하는 채널이다. 파일 전송 요청이 들어올 때마다 동적으로 개설되며, 해당 파일 전송이 완료되는 즉시 자동으로 폐기(Teardown)된다.
11.5.2 전자우편 시스템 (E-mail 프로토콜 구조)
메일 시스템은 메일을 작성 및 열람하는 UA(User Agent), 메일을 서버 간에 릴레이 중계하는 MTA(Mail Transfer Agent), 최종 사서함에서 클라이언트로 가져오는 MAA(Mail Access Agent)의 결합 구조이다.
[송신 UA] ──(SMTP)──> [송신 메일 서버 (MTA)] ──(SMTP)──> [수신 메일 서버 (MTA)] ──(POP3/IMAP)──> [수신 UA]
- SMTP (Simple Mail Transfer Protocol): 메일을 송신 호스트에서 메일 서버로 업로드하거나, 메일 서버와 메일 서버 간에 인터넷망을 거쳐 메일을 라우팅 중계할 때 사용하는 푸시(Push) 방식의 프로토콜이다. TCP 포트 25번을 사용하며, 오직 7비트 ASCII 텍스트 구조만 지원하므로 멀티미디어 첨부파일 전송을 위해 MIME(Multipurpose Internet Mail Extensions) 인코딩 표준을 연동한다.
- POP3 (Post Office Protocol version 3): 수신 메일 서버의 사서함으로부터 클라이언트의 UA로 메일을 다운로드하는 팝(Pull) 방식의 프로토콜이다. TCP 포트 110번을 사용하며, 기본적으로 메일을 로컬로 가져오는 즉시 서버 사서함에서 데이터를 자동 삭제하는 단방향 동기화 특성을 가진다.
- IMAP (Internet Message Access Protocol): POP3의 단점을 보완한 최신 메일 액세스 프로토콜이다. TCP 포트 143번을 전담하며, 메일을 로컬로 내려받아도 서버 사서함에 원본 데이터가 그대로 잔존한다. 서버 내에 사용자 정의 폴더를 구성하고 여러 단말(스마트폰, PC 등)에서 접속해도 사서함 보관 상태가 실시간으로 동기화된다.
11.5.3 Secure Shell (SSH)
보안 기능이 없는 기존의 텔넷(Telnet, TCP 23번 포트)을 대체하여, 암호화되지 않은 네트워크망 상에서도 원격지의 서버를 안전하게 제어하고 명령을 실행할 수 있도록 지원하는 암호화 세션 프로토콜이다. 기본적으로 TCP 포트 22번을 사용한다.
- SSH의 3대 핵심 보안 계층 아키텍처:
- SSH-TRANS (Transport Layer Protocol): 공개키 암호화(RSA 등)를 기반으로 서버의 신원을 인증(MITM 공격 방지)하고, 세션에 사용할 대칭키를 안전하게 교환하여 통신 전 구간에 대한 기밀성(Confidentiality)과 데이터 무결성(Integrity) 레이어를 수립하는 하부 물리적 보안 채널이다.
- SSH-AUTH (Authentication Protocol): TRANS 계층 상에 보안 터널이 수립된 후, 서버가 접속하려는 클라이언트(사용자)의 계정 권한 정당성을 검증하는 프로토콜이다. 패스워드 방식이나 클라이언트의 공개키/개인키 쌍을 활용해 사용자 인증을 수행한다.
- SSH-CONN (Connection Protocol): 클라이언트 인증이 최종 완료되면, 수립된 단일 보안 터널 내부를 논리적으로 쪼개어 가상 다중 채널(Logical Channels)들을 개설 및 관리하는 계층이다.
- SSH-CONN이 생성하는 주요 논리 채널 서비스:
- Interactive Shell: 원격 명령행 터미널 환경에 다이렉트로 접속해 원격 제어 명령 실행
- 포트 포워딩 (Port Forwarding): 보안 기능이 없는 다른 애플리케이션의 일반 트래픽을 SSH의 강력한 암호화 터널 내부로 통과시켜 우회 중계하는 터널링 기능
- SFTP / SCP: 안전하게 암호화된 채널 구조를 활용해 원격 호스트 간 파일을 송수신하는 보안 파일 전송 체계
11.6 소켓 인터페이스 프로그래밍 (Socket Interface)
소켓(Socket)은 응용 프로그램 레이어와 전송 계층 커널 레이어 사이의 데이터 입출력을 중계하는 추상화된 핵심 API 인터페이스 인프라이다. 응용 프로그램 입장에서는 파일 디스크립터(File Descriptor)와 동일하게 취급되어 읽기/쓰기 연산으로 통신을 수행한다.
11.6.1 TCP 연결 지향형 소켓 통신 시퀀스
TCP 통신은 사전에 3-Way Handshake가 완벽히 수립되어야 하므로 서버와 클라이언트 간의 시스템 콜(System Call) 함수 시퀀스가 정교하게 맞물려 구동된다.

서버 측 실행 함수 흐름 (Passive Open)
socket(): 통신 종단점인 소켓 객체를 메모리에 최초로 생성한다. (프로토콜 패밀리 및 소켓 타입 정의)
bind(): 생성된 소켓에 실제 통신 인터페이스 인프라의 논리 주소 정보인 [IP 주소 + 포트 번호] 구조체(sockaddr_in)를 커널 단에 결합 및 등록한다.
listen(): 클라이언트의 Active Open 접속 요청을 수용하기 위해 해당 포트를 열고 연결 요청 대기 큐(Queue)의 크기를 지정하여 수동 대기 상태로 진입한다.
accept(): 연결 대기 큐에서 대기 중인 클라이언트의 SYN 패킷을 확인하고 요청을 꺼내어 승인한다. 내부적으로 3-Way Handshake 연산이 완료되는 지점이며, 커널은 실제 응용 데이터 송수신만을 전담할 새로운 통신 전용 소켓(Connected Socket)을 복제하여 반환한다. (기존 Listen 소켓은 계속 다음 클라이언트 대기 업무 수행)
read() / write() 또는 recv() / send(): 연결이 수립된 복제 소켓의 버퍼를 통해 실질적인 애플리케이션 데이터를 입출력한다.
close(): 데이터 송수신 완료 시 세션을 종료하고 소켓 자원을 커널 메모리에 반환한다. (4-Way Handshake 유발)
클라이언트 측 실행 함수 흐름 (Active Open)
socket(): 클라이언트 전용 소켓을 생성한다.
connect(): 서버의 IP 주소와 수신 대기 중인 Well-known 포트 주소를 기재하여 서버 측의 accept()를 향해 명시적인 연결 요청 패킷(SYN)을 송신한다. 이 시점에 클라이언트 커널은 Ephemeral 포트 대역에서 비어있는 포트 번호 하나를 임시로 자동 할당(Auto-binding)한다.
write() / read(): 서버의 승인을 받아 핸드셰이크가 완벽히 수립되면 데이터를 송수신한다.
close(): 세션을 먼저 닫으며 Active Close 주체가 된다.
스스로 확인해보기
[ 웹 및 표준 응용 프로토콜 ]
Q1. HTTP 프로토콜의 '비상태성(Stateless)' 특성을 정의하고, 이를 극복하여 상위 웹 응용 계층에서 로그인 세션을 유지하기 위해 도입한 상호 보완 메커니즘을 기술하시오.
- 모범 답안: 비상태성이란 서버가 클라이언트의 이전 상태나 요청 이력을 기억하지 않고 모든 요청을 독립된 개체로 처리하는 특성이다. 이를 보완하여 상태를 유지하기 위해, 클라이언트 브라우저에 상태 값을 저장하는 쿠키(Cookie)와 서버 메모리 버퍼 상에 사용자 정보를 매핑하여 저장하는 세션(Session) 메커니즘을 연동하여 관리한다.
Q2. FTP 프로토콜이 가동하는 두 가지 독립된 TCP 연결의 명칭과 각각의 기본 포트 번호 및 역할을 서술하시오.
- 모범 답안: 1. 제어 연결 (TCP 21번 포트): 클라이언트와 서버 간의 명령어 전송 및 응답 코드 교환을 전담하며 세션 동안 유지된다.
- 데이터 연결 (TCP 20번 포트): 실제 파일 데이터 및 디렉토리 리스트의 실질적 스트리밍 전송을 담당하며, 전송 요청 시마다 생성되었다가 전송 완료 즉시 폐기된다.
Q3. 전자우편 시스템에서 메일 서버 간에 메일을 중계 라우팅할 때 사용하는 프로토콜의 명칭과 전송층 포트 번호를 쓰고, 최종 수신 호스트가 자신의 메일 서버 사서함에서 메일을 읽어올 때 다중 단말 간의 실시간 보관 상태 동기화를 지원하는 최신 액세스 프로토콜의 명칭을 쓰시오.
- 모범 답안: 메일 서버 간 중계 프로토콜은 SMTP (TCP 25번 포트)이며, 다중 단말 간 실시간 상태 동기화를 완벽히 지원하는 수신 액세스 프로토콜은 IMAP (TCP 143번 포트)이다.
Q4. SSH 보안 아키텍처 중, 하부의 TRANS 보안 터널이 수립된 직후 가동되어 다중 쉘 터미널 세션, SFTP 파일 전송, 타 응용 트래픽 암호화 터널링(포트 포워딩) 등의 가상 논리 채널들을 생성 및 제어하는 계층 프로토콜의 명칭을 쓰시오.
- 모범 답안: SSH-CONN (SSH Connection Protocol)
[ 소켓 프로그래밍 ]
Q5. TCP 연결 지향형 소켓 통신 환경에서 서버 측 라우터 및 호스트가 특정 포트 번호를 열고 대기하다가, 클라이언트와의 3-Way Handshake 동기화가 완벽히 완료되는 순간 커널이 호출을 해제하며 실질적인 데이터 송수신만을 전담할 '새로운 복제 소켓'을 반환하는 시스템 콜 함수의 명칭을 쓰시오.
핵심 요약
- HTTP 프로토콜: TCP 80번(HTTPS는 TLS 결합 443번) 포트 기반. 비상태성(Stateless) 구조를 가지며 쿠키와 세션으로 한계를 보완. 200(성공), 301(이동), 404(자원 없음), 500(서버 내부 오류) 등의 상태 코드로 응답 제어 명시.
- FTP 분리 제어: L4 단에서 TCP 21번(명령어 제어 채널)과 TCP 20번(순수 데이터 스트리밍 채널)을 이중 분리 분배하여 대역폭 간섭 배제.
- 이메일 메커니즘: 서버 간 푸시 및 업로드는 SMTP(TCP 25번, 7비트 ASCII 규격 제한으로 MIME 연동)가 전담. 클라이언트의 사서함 팝 다운로드는 POP3(TCP 110번, 단방향 삭제) 또는 IMAP(TCP 143번, 다중 단말 실시간 양방향 동기화)가 전담 수행.
- SSH 아키텍처: TCP 22번 포트 가동. SSH-TRANS(암호화/기밀성/무결성 터널 수립) → SSH-AUTH(사용자 인증) → SSH-CONN(쉘 세션 및 암호화 포트 포워딩 다중 채널 운영)의 3단계 레이어 구조 확립.
- TCP 소켓 시퀀스: 서버는
socket() → bind()(주소 바인딩) → listen()(대기) → accept()(핸드셰이크 완료 및 통신 소켓 복제 반환) 순서로Passive Open 수행. 클라이언트는 socket() 생성 후 서버 주소를 명시한 connect() 호출을 통해 Active Open을 유발하여 세션 동기화.
참고문헌
- Forouzan, B. A. (2013). Data Communications and Networking (6th ed.). McGraw-Hill.
- 번역: 이재광, 김중규, 이경현, 홍충선. 데이터 통신과 네트워킹 TCP/IP 프로토콜 기반 (개정 6 수정판). 퍼스트북.