[네트워크] TCP/IP 4계층 및 응용계층
TCP/IP
Transmission Control Protocol/Internet Protocol
DoD(미국방성)모델이라고 하며 OSI 7계층과 흡사하나 OSI보다 먼저 만들어지고 가장 많이 사용중이다.
TCP/IP 구조
-
Application(Application/Presentation/Session)
네트워크를 실제로 사용하는 응용프로그램으로 구성
FTP, TELNET, SMTP 등등 -
Transport(Transport)
도착하고자 하는 시스템까지 데이터를 전송
Port를 가지고 있으며, 프로세스를 연결 또는 비연결해서 통신함
TCP, UDP -
Internet(Network)
Datagram을 정의하고 routing하는 일을 담당
IP, ARP, RARP, ICMP, IGMP -
Network Access(Data Link/Physical)
케이블, 송수신기, 링크 프로토콜, LAN 접속과 같은 물리적 연결 구성을 정의
Application Layer
일반 사용자들이 사용하는 프로그램이 있는 계층. 사용자는 프로그램을 사용하여 통신.
-
FTP(File Transfer Protocol)
사용자 파일의 업로드 혹은 다운로드를 수행하는 프로그램 파일 전송을 위한 인터넷 표준으로 제어 접속과 데이터 접속을 위한분리
된 포트를 사용 -
DNS(Domain Name Service)
DNS 쿼리를 사용해서 DNS서버에 URL을 전송하고 해당 URL에매핑
되는 IP주소를 제공하는 서비스 - HTTP(Hyper Text Transfer Protocol)
WWW(World Wide Web)로 시작되는 인터넷에서 웹브라우저와 웹 서버 사이에 웹 페이지의 Request 및 Response를 수행하는 W3C 표준 개방형 프로토콜
TCP 기반 프로토콜의 80번 포트를 사용, State-less로 프로토콜을 구성-
HTTP v1.0
연결을 수행할 때 마다 3-Way Handshaking 기법 사용
HTML 페이지를 수신 받고 완전히 종료
필요 시 재연결하고 페이지를 수신받음 -
HTTP v1.1
어느 정도 대기한 후에 연결을 종료(Keep Alive Connection) -
HTTP v2.0
멀티플랙싱(Multiplexing) : 순차적 연결이 아니라 동시 다발적인 양방향 통신 지원
헤더압축(Header Compression) : 헤더 정보를 1/3 수준으로 압축. 속도 향상
서버푸시(Server Push) : 웹 서버가 웹 브라우저에게 필요한 데이터를 알아서 미리 전송할 수 있는 기술
-
-
Telnet
특정 지역의 사용자가 지역적으로 다른 곳에 위치한 컴퓨터를 온라인으로연결
하여 사용하는 서비스 -
SMTP(Simple Mail Transfer Protocol)
TCP 25 Port. RFC821에 명시된 인터넷전자우편
(MIME 데이터 형식)을 위한 프로토콜로 메시지 전달을 위해 Store and Forward 방식을 사용
암호화 및 인증 기능 없이 사용자의 e-mail을 전송하는 프로토콜 - SNMP(Simple Network Management Protocol)
네트워크에 대한 트래픽, 세션 등의 네트워크 상태를모니터링
하고 정보를 전달할 때 사용되는 프로토콜
3-Way Handshaking
1) 웹브라우저(클라이언트)가 웹 서버에 SYN
메시지를 전송
2) 웹 서버는 웹브라우저에게 SYN
, ACK
로 응답
3) 웹브라우저는 웹 서버에 최종 연결확립 메시지인 ACK
를 전송해 웹 서버와 연결 확립(ESTABLISHED 상태)
HTTP
Header : Request 시 전달해야 하는 웹브라우저 정보, 요청방식, 파라미터
Body : Request 할 때는 사용하지 않고 POST 방식의 Request 시 Body에 파라미터 정보를 넣고 전송
- HTTP Request 시 Header 구조
-
Request Method
호출되는 메소드. GET/POST/OPTIONS/PUT/DELETE/TRACE/CONNECT -
Accept
웹 브라우저에서 사용 가능한 미디어 타입. text/html..등 -
Accept-Language
웹 브라우저가 인식할 수 있는 언어를 의미 -
User-Agent
웹 브라우저 정보 의미 -
Accept-Encoding
웹 브라우저에서 제공되는 인코딩 방식 -
Host
웹 서버의 기본 URL -
Connection
연결 지속(Keep Alive) 및 연결 끊기(Close) 상태 표시
-
- HTTP Response 시 Header 구조
-
Status Code
HTTP 응답코드. 200 : 성공적으로 처리 -
Server
서버 프로그램 이름과 버전 전송 -
Expires
자원의 만기일자 -
Cache Control
캐시 사용 여부. HTTP/1.1 -
Pragma
캐시 사용 여부. HTTP/1.0 -
Content-Encoding
응답되는 메시지의 인코딩 방식 -
Content-Length
바이트 단위로 응답되는 리소스의 크기 -
Keep-Alive
연결 유지 시간을 의미 -
Connection
Keep-Alive 사용 여부 -
Content-Type
응답되는 미디어 타입
-
- HTTP 요청 방식
-
GET 방식
서버에 전달할 때 데이터를 URL에 포함시켜서 요청
전송할 수 있는 데이터 양이 제한(2Kbyte or 4Kbyte) -
POST 방식
서버에 전달할 때 데이터를 Request Body에 포함시킴
데이터 전송량의 제한이 없음
-
- 쿠키(Cookie)
웹브라우저
에서 저장할 수 있는 작은 공간으로 개발자가 프로그램에 필요한 정보를 임시적으로 저장 가능
쿠키 값은 변조가 가능하기에 보안 상 주의를 요함- 저장 형태 : Text 형식
- 종료 시점 : 쿠키 저장 시에 종료 시점을 설정하며, 설정하지 않으면 브라우저가 종료 시점이 된다
- 용량 : 한 도메인 당 20개, 쿠키 하나에 4KB(총 300개)
- 세션(Session)
클라이언트와 웹 서버 사이의 네트워크 연결이 지속적으로 유지되는 상태- 저장 형태 : Object 형식
- 종료 시점 : 정확한 시점을 알 수 없다
- 용량 : 제한 없음
SMTP
- 구성요소
-
MTA(Mail Transfer Agent)
메일을 전송하는 서버 -
MDA(Mail Delivery Agent)
MTA에게 받은 메일을 사용자에게 전달(수신측에 고용된 우체부) -
MUA(Mail User Agent)
사용자들이 사용하는 클라이언트 어플리케이션
-
-
기본 동작 방식
1) 송신자가 보낸 전자우편은 전자우편을 관리하는 메일 서버에 전달
2) 메일 서버는 수신자의 전자우편 주소를 분석하고 최단 경로를 찾아 근접한 메일 서버에게 편지를 전달
3) 최종 수신자 측 메일 서버에 도착하기까지 연속적으로 전달하는 중계 작업을 수행 -
POP3
TCP 110 Port. 메일서버에 접속하여 저장된 메일을 내려 받는 MDA 프로그램
메시지를 읽은 후 메일 서버에서 해당 메일을 삭제 - IMAP & IMAP3
TCP 143 Port. 위 POP과 역할은 유사하나 메일을 내려받아도 메일 서버에 원본을 계속 저장한다는 차이점이 있음
FTP
해당 컴퓨터에 등록된 사용자만 파일전송이 가능하며, 그 외에는 익명으로 사용
ftpuser
에 등록된 사용자는 FTP 접근 불가
제어 접속과 데이터 접속 포트 분리
-
Active Mode
1) 클라이언트에서 서버 TCP 21번 포트로 접속 시도
2) 서버는 TCP 20번 포트로 데이터를 송수신 -
Passive Mode
1) 클라이언트는 서버의 TCP/21번 포트로 접속 후 두 번째 포트를 질의
2) 서버는 클라이언트에게 데이터 연결을 위한 두 번째 포트(TCP 1024 ~ 65535)을 랜덤으로 선택하여 알림
3) 클라이언트는 서버가 알려 준 두 번째 포트로 접속
SNMP
운영되는 네트워크의 안정성, 효율성을 높이기 위해 구성/장애/통계/상태 정볼르 실시간으로 수집 및 분석하는 네트워크 관리 시스템
NMS(Network Management System)는 SNMP 프로토콜을 사용해서 네트워크 정보 수집
MIB(Management Information Base)는 SNMP에서 모니터링해야 하는 객체 정보를 소유
- SNMP 명령
-
GET
장비의 상태 및 기동시간 등의 관리 정보 읽기 -
GET-NEXT
정보가계층적
구조를 가지므로 관리자가 장비 조회를 해서 해당 트리보다 하위층 정보를 읽기 -
SET
장비 MIB를조작
하여 장비 제어/관리자는 요청을 보내 초기화 혹은 장비 재구성 -
TRAP
일반적으로 SNMP는 Polling 방식으로 주기적으로 정보 요청과 요청에 대한 정보 응답 방식으로 동작되는데,
이 때 만약 연결구간이 혼잡하게 될 경우 중요한 관리 정보가 손실되어 그 정보를 인지 못할 수도 있다는 문제점을보완
하기 위해 TRAP 기술 도입Manager가 요청 않더라도 Agent에 의해 자의적으로 경고, 고장통지 등 미리 설정된 유형의 보고서를 생성/송신
-
댓글남기기