전송계층프로토콜 TCP(Transmission Control Protocol) 전송계층에서동작하는연결지향형 (connectionoriented) 프로토콜 데이터의흐름을관리하고, 데이터가정확한지검증하며통신 쓰리웨이핸드셰이킹 (three-way handshaking) 을통해연결설정 특징 - 높은신뢰성 - 가상회선연결방식 - 연결의설정과해제 - 데이터체크섬 - 시간초과와재전송 - 데이터흐름제어 TCP 헤더 TCP 패킷내용
TCP에서연결생성과정 1단계 : 두시스템이통신을하기전에클라이언트는포트가 Closed 상태며, 서버는해당포트로항상서비스를제공할수있도록 Listen 상태다. 2단계 : 처음클라이언트가통신을하고자하면, 임의의포트번호가클라이언트프로그램에할당되고, 클라이언트는 SYN Sent 상태가된다. 서버에연결을하고싶다는일종의의사표시다. 3단계 : 서버는클라이언트의연결요청을받고 SYN Received 상태가된다. 그리고클라이언트에연결을해도좋다는의미로SYN+ACK 패킷을보낸다. 4단계 : 마지막으로클라이언트는연결요청에대한서버의응답을확인했다는표시로 ACK패킷을서버에보낸다. TCP에서연결해제과정 1단계 : 두시스템이통신을하는중에는클라이언트와서버모두 Established 상태다. 2단계 : 통신을끊고자하는클라이언트가서버에 FIN 패킷을보낸다. 이때, 클라이언트는 Close Wait 상태가된다. 3단계 : 서버는클라이언트의연결종료요청을확인하고, 클라이언트에응답으로 ACK 패킷을보낸뒤, 서버도클라이언트의연결을종료하겠다는의미로 FIN 패킷을보낸다. 그리고 Close Wait 상태가된다. 4단계 : 마지막으로클라이언트는연결종료요청에대한서버의응답을확인했다는의미로 ACK패킷을서버에보낸다. UDP(User Datagram Protocol) TCP와달리비연결지향형프로토콜 송신시스템과목적지시스템사이에상호통신이이루어지지않기때문에전송되는데이터중일부가손실되는경우손실데이터에대한재전송을요구하지않음 비연결지향형프로토콜이므로송신시스템은손실된데이터의정보를알수없으며, 따라서손실데이터를재전송하지않음 특징 - 비연결지향형 - 네트워크부하감소 - 비신뢰성 - 전송된데이터의일부가소실됨
UDP 헤더 UDP 패킷내용 응용계층프로토콜 사용자가사용하는응용프로그램이네트워크와통신하기위해사용하는프로토콜 FTP(File Transfer Protocol, 20, 21) 파일전송을위한가장기본프로토콜로, RFC 114로 1971년에만들어짐 FTP 연결은컨트롤연결과데이터연결로나뉨 컨트롤연결 - FTP 서버가 21번포트를열고클라이언트의요청을기다림 ( 수동적포트오픈 )-> 클라이언트에서임의의포트를설정하여 FTP 요청을보냄 ( 능동적포트오픈 ) 서버의수동적연결설정 클라이언트의능동적연결설정 FTP 연결설정 ( 데이터연결 ) 클라이언트에서임의의포트를열고수동적오픈상태설정 클라이언트에서 PORT 명령어를사용하여열고있는포트번호를서버에전달
서버에서는클라이언트가보낸임의의포트를받고 20 번포트를수동적포트오픈상태로설정 FTP 명령어처리과정 - FTP 는컨트롤연결을설정하여서버컨트롤프로세스와클라이언트컨트롤프로세스가통신 - 대화형으로처리되며, 사용자가서버에내리는명령 (Command) 과그응답 (Response) 으로구분 - 명령메시지에포함된명령어종류 - 접근명령어 : USER, PASS, ACCT, REIN, QUIT, ABOR - 파일관리명령어 : CWD, CDUP, DELE, LIST, NLIST, MKD, PWD, RMD, RNFR, RNTO, SMNT - 데이터형식화명령어 : TYPE, STRU, MODE - 포트정의명령어 :PORT, PASV - 파일전송명령어 : GET, PUT, MGET, MPUT, RETR, STOR, APPE, STOU, ALLO, REST, STAT - 기타명령어 : HELP, NOOP, SITE, SYST - 예 : get a.txt 프로토콜의종류 Telnet(23) 사용자가원격에있는서버에로그인하도록 TCP 연결을설정하며, 단말기가원격컴퓨터바로옆에있는것처럼직접조작할수있게해줌 텔넷이제공하는서비스 - 원격시스템에표준인터페이스를제공하는네트워크가상단말기 (NVT, Network Virtual Terminal) 기능을제공 - 클라이언트와서버가통신옵션을교환할수있는메커니즘을제공한다. 예를들어, 7비트 ASCII 코드로데이터를주고받을수도있고, 8비트코드로데이터를주고받을수도있다. - 양단간의통신이대칭적으로수행되며, 클라이언트측에서항상사용자단말기가사용되는대신임의의프로그램이클라이언트로작동할수있다.
SMTP(Simple Mail Transfer Protocol, 25) 메일전송을위한프로토콜 SMTP 프로세스모델 메일전달 - 로컬컴퓨터에서새로운메일주소들로식별자맵핑 ( 보통메시지와수신자이름테이블구성 - 메일인터페이스프로그램은전송프로세스에메시지를넘겨주기전수신자별명데이터베이스를조사하여수신자주소로변환. 메일별명확장 (mail alias expansion) 메커니즘이입력되는수신자주소를별명으로바꾸고맵핑하기위해사용됨 - 별명을사용하면메일시스템은기능적으로좀더편리하게사용할수있으며, 맵핑은일대다 (1:n) 또는다대일 (n:1) 로가능 - 입력과출력메일메시지는메일전달프로세스로넘겨줌 - 메일전달프로세스에서는별명데이터베이스를조사해메일의주소를교체. 메일전달프로세스는맵핑된메일의주소가로컬인지또는원격인지를판별하여원격주소면송신메일큐에메시지를저장하고, 로컬주소면수신메일큐에메시지를저장
DNS(Domain Name Service, 53) 도메인이름주소를통해 IP 주소를확인할수있는프로토콜 TFTP(Trivial File Transfer Protocol, 69) 1985 년에만들어졌으며 FTP 처럼파일을전송하기위한프로토콜 HTTP(HyperText Transfer Protocol, 80) 인터넷서비스를위한프로토콜 POP3(Post Office Protocol 3, 110) & IMAP(Internet Message Access Protocol, 143) 메일서버로전송된메일을확인할때사용하는프로토콜. IMAP 도 POP3 와기본적으로같으나, 메일을읽은후에도메 일이서버에남는다는점이다름 RPC(Remote Procedure Call, 111) 썬 (Sun) 의 Remote Procedure Call 을가리킴 NetBIOS(Network Basic Input/Output System, 138) 사무기기와윈도우시스템간의파일공유를위한프로토콜 SNMP(Simple Network Management Protocol, 161) 네트워크관리와모니터링을위한프로토콜