TCP와 UDP에 대한 이해 --------------------------------------------------------------------------------------------


설명전에 일단 전에 보았던 OSI 7계층을 다시 봅니다.


 레벨

 계층

 기능

 7계층

 Application

응용 계층

프로토콜 : DHCP, DNS, FTP, HTTP

서비스 제공

사용자가 네트워크에 접근할 수 있도록 해주는 계층이다.

사용자 인터페이스, 전자우편, 데이터베이스 관리 등 서비스를 제공한다.

예로, 텔넷이나 HTTP, SSH, SMTP, FTP 등을 들 수 있다.

 6계층

 Presentation 

표현 계층

프로토콜 : JPEG, MPEG, SMB, AFP

이해할 수 있는 포멧변환

운영체계의 한 부분으로 입력 또는 출력되는 데이터를 하나의 표현 형태로 변환한다.

필요한 번역을 수행하여 두 장치가 일관되게 전송 데이터를 서로 이해할 수 있도록 한다.

제어코드나 문자 및 그래픽등의 확장자(jpg, gif, mpg)를 생각하면 쉽다.

 5계층

 Session

세션 계층

프로토콜 : SSH, TLS

응용간의 질서 제어

통신 세션을 구성하는 계층으로, 포트(Port)연결이라고도 할 수 있다.

통신장치 간의 상호작용을 설정하고 유지하며 동기화 한다.

사용자간의 포트연결(세션)이 유효한지 확인하고 설정한다.

 4계층

 Transport

전송 계층

프로토콜 : TCP, UDP, ARP

장비 : 게이트웨이

전체 메시지를 발신지 대 목적지(종단 대 종단)간 제어와 에러를 관리한다.

패킷들의 전송이 유효한지 확인하고 실패한 패킷은 다시보내는 등 신뢰성 있는 통신을 보장하며, 머리말에는 세그먼트(Segment)가 포함된다. 대표적인 프로토콜은 TCP이다.

 3계층

 Network

네트워크 계층

프로토콜 : IP, ICMP, IGMP

장비 : 라우터

다중 네트워크 링크에서 패킷(Packet)을 발신지로부터 목적지로 전달할 책임을 갖는다.

2계층은 노드대노드 전달을 감독하는 것이고 3계층은 각 패킷이 시작 시점에서 최종 목적지까지 성공적이고 효과적으로 전달되도록하며, 대표적 프로토콜은 IP이다.

 2계층

 Data link

데이터링크 계층

프로토콜 : MAC, PPP

장비 : 브리지, 스위치

오류없이 한 장치에서 다른 장치로 프레임(Frame, 비트의 모음)을 전달하는 역할

스위치같은 장비의 경우 MAC주소를 이용하여 정확한 장치로 정보 전달

3계층에서 정보를 받아 주소와 제어정보를 시작(헤더)와 끝(테일)에 추가

 1계층

 Physical

물리계층

프로토콜 : Ethernet.RS-232C

장비 : 허브, 리피터

물리적 매체를 통해 비트(Bit)흐름을 전송하기 위해 요구되는 기능들을 조정

케이블, 연결 장치 등과 같은 기본적인 물리적 연결기의 전기적 명세를 정하고 네트워크의 두 노드를 물리적으로 연결시켜 주는 신호방식을 다름 


각 계층별 대표적 프로토콜


 7 Application (응용 계층)

HTTP, SMTP, SNMP, FTP, Telnet, SSH & Scp, NFS, RTSP 

 6 Presentation (표현 계층)

JPEG, MPEG, XDR, ASN.1, SMB, AFP 

 5 Session (세션 계층)

TLS, SSH, ISO 8327 / CCITT X.225, RPC, NetBIOS, AppleTalk 

 4 Transport (전송 계층)

TCP, UDP, RTP, SCTP, SPX, AppleTalk 

 3 Network (네트워크 계층)

IP, ICMP, IGMP, X.25, CLNP, ARP, RARP, BGP, OSPF, RIP, IPX, DDP 

 2 Data link (데이터 링크 계층)

Ethernet, Token Ring, PPP, HDLC, Frame relay, ISDN, ATM, 무선랜, FDDI 

 1 Physical (물리 계층)

전선, 전파, 광섬유, 동축케이블, 도파관, PSTN, Repeater,DSU, CSU, Modem




아래 이미지는 TCP/IP를 좀더 쉽게 설명하기 위해서 7계층의 몇가지 단계를 압축시켜 표현했다고 보시면 됩니다.

----------------------------------------------------------------------------------------------------------------------------------


----------------------------------------------------------------------------------------------------------------------------------

어플리케이션은 게임이라고 생각해 봅시다.

그 아래로 3개의 계층을 통해서 인터넷과 연결된다고 보면 됩니다. 

그리고 이 계층은 다른 호스트에도 존재하는 계층이 됩니다. 즉 컴퓨터 A와 컴퓨터B는 같은 계층을 통해서 서로 데이터를 주고 받고 있는 겁니다.

----------------------------------------------------------------------------------------------------------------------------------



----------------------------------------------------------------------------------------------------------------------------------

소켓의 종류에는 TCP/UDP두가지 종류가 존재합니다.

위의 이미지는 TCP방식의 소켓을 할당했을때 계층의 모델이다. 

----------------------------------------------------------------------------------------------------------------------------------


----------------------------------------------------------------------------------------------------------------------------------

소켓의 종류에는 TCP/UDP두가지 종류가 존재합니다.

위의 이미지는 TCP방식의 소켓을 할당했을때 계층의 모델이다. 

----------------------------------------------------------------------------------------------------------------------------------


각 계층의 역할 --------------------------------------------------------------------------------------------

LINK 계층-------------------------------------------------------------------------------------------------------------------------

LINK 계층은 물리적인 영역을 생각하는게 좋다. 각 컴퓨터와 전산망을 생각하면 된다. 랜선이나 무선회선에 의해서 각 컴퓨터는 연결되고 송수신 되는 데이터는 라우터를 통해서 다른 호스트나 서버에게 전송되게 됩니다.

----------------------------------------------------------------------------------------------------------------------------------

IP계층----------------------------------------------------------------------------------------------------------------------------

IP계층은 LINK계층의 어떤 경로를 이용할 것인가를 표시해준다고 생각하면 된다.

LINK계층이 지도라면 IP계층은 지도라고 보면 된다.

하지만 한가지 알아둬야 할건 지도가 있다고 해서 배달부가 목적지에 잘 도착했는지까지 보장하지는 않는다는 것이다.

----------------------------------------------------------------------------------------------------------------------------------

      TCP가 IP계층에 신뢰성을 부여하는 이유. 간단히 말해서 상대가 패킷을 받았다는 신호를 보내지 않으면 다시 패킷을 보낸다.

TCP UDP계층------------------------------------------------------------------------------------------------------------------------


정리해보기


- TCP 통신 
TCP(Transmission Control Protocol)는 인터넷에서 가장 흔하게 그리고 많이 쓰이는 프로토콜 방식이다. 그 이유는 TCP통신은 error correction이라는게 존재하는데 말 그대로 에러를 다시 잡아주는 것이다. 서버에서 클라이언트에게 어떤 정보를 보냈다고 하자! 그러면 클라이언트는 서버가 보낸 정보를 제대로 받았는지, 확인해주는 메세지를 다시 서버에게 돌려주고, 클라이언트가 제대로 받지 못했을 경우엔 resend를 서버에 요청 할 수 있다. 그러면 loss된 데이터를 다시 클라이언트에게 보낼 수 있는 것이다. 이런 방법들을 flow control이라고 하며, 오리지널 데이터를 로스 하지 않고 받을 수 있게 한다. 즉, guaranteed delivery!

* IP계층은 데이터의 송수신결과를 보장하지 않는다. 하지만 TCP통신이란 서로간의 확인을 통해서 IP계층의 데이터입출력에 신뢰성을 부여한 프로토콜 모델이라고 생각하면 된다.

- UDP 통신
UDP(User Datagram Protocol) 은 인터넷에서 또 많이 쓰이는 프로토콜인데 그 사용처는 tcp 통신과는 다르다. tcp통신과의 가장 큰 차이는 단방향 통신이라는것! 서버가 클라이언트에게 혹은 클라이언트가 서버에게! error correction이 없고, 무조건 보내는 쪽에선 던지기만 하고 받는 쪽에선 받기만 한다. 그러다가 데이터 로스가 중간에서 발생하면 어쩌냐? 무시한다. 그냥 던지고 받는거다 ! 이렇게 되면 장점은 TCP통신 보다는 훨씬 빠른 전송을 보여주게 된다. 

----------------------------------------------------------------------------------------------------------------------------------


Posted by JJOREG