5. UDP 방식과 TCP 방식

raha·2022년 7월 17일
0
post-custom-banner

UDP 전송 방식 : 송신 측 호스트에서 송신 데이터가 생기면 곧바로 수신측 호스트에게 전송을 수행. 수신측에서 수신할 수 있는지 여부를 고려하지 않는다. 무조건 전송만 수행.

TCP 전송 방식 :

데이터 전송 전 송신측과 수신측이 연결환경을 구축할 때,

송신 측 호스트에서 송신 데이터가 생기면, 수신 측 호스트에게 SYN이라고 부르는 일종의 동기화 신호를 전송한다. 수신 가능 여부를 묻는 애용이다. 수신 측에서는 송신 측에서 보낸 SYN 신호에 대해 SYN/ACK 라고 부르는 신호로 응답을 보낸다. ACK는 송신 측 요청에 대한 수락을 의미하고, SYN은 수신측에서 역으로 송신측에게 동기화를 요청한다는 뜻이다. 만약 수신측에서 모종의 이유로 SYN/ACK 신호를 보낼 수 없다면, 송신측에서는 일정 시간 대기한 후 다시 SYN 신호를 보낸다. 송신측 호스트가 수신측 호스트로부터 SYN/ACK 신호를 받으면 다시 ACK 신호를 전송한다. 수신 측 동기화 여부를 요청하는 SYN 신호에 대한 응답이다. 이러한 3단계 동기화 과정을 마친 뒤 송신 측과 수신 측 사이에 실제 데이터를 주고 받는다.
=> 3단계 연결 설정

3단계 연결 설정이 완료된 후 실제로 데이터를 보낼때,

송신 측에서 데이터를 전송한 뒤 수신 측으로부터 ACK 신호를 받을 때까지 대기한다. 임의의 시간을 대기한 뒤에도 수신 측으로부터 ACK 신호가 없다면, 전송 중 오류가 발생했다고 판단하고 해당 데이터를 다시 전송해준다. 수신 측으로부터 ACK신호가 오면 송신 측에서는 비로소 그 다음 데이터를 전송해준다.

데이터의 전송을 마친 후,

송신 측에서 데이터를 모두 전송했다면 FIN이라고 부르는 신호를 전송한다. 수신 측과 연결을 종료하겠다는 뜻이다. 그럼 수신 측에서 ACK/FIN이라고 부르는 신호로 응답을 보낸다. 송신 측에서는 수신 츠긍로부터 받은 FIN신호에 대한 응답으로 ACK 신호를 마지막으로 보낸 뒤 최종적으로 연결을 종료한다.
=> 3단계 연결 종료

만약, 송신측에서 FIN신호를 보낸 직후 수신측에서 아직까지 데이터를 처리하는 도중이라면, ACK 신호를 먼저 보내고 처리가 끝나면 그때서야 FIN 신호를 보낸다.
=> 4단계 연결 종료
(근데 일단 데이터를 다 받긴 해서 ACK 신호를 보냈는데 데이터를 처리하던 도중에 뭔가 문제가 생기면 어떡함?? 일정 시간이 지났는데도 FIN 신호가 안날아오면 송신측에서 다른 액션을 취하나?)

TCP방식이 이러한 3단계 연결 설정오가 3/4 단계 연결 종료를 수행할 수 있는 이유는 버퍼링 때문이다.
즉 UDP방식과 TCP 방식은 버퍼링의 유무에 따라 구분할 수 있다. UDP방식의 경우 버퍼링 기능이 없기 떄문에 일방적이 ㄴ전송만을 수행한다. 반면, TCP 방식의 경우 버퍼링 기능이 있기 때문에 송신자와 수신자 사이에 3단계 연결 설정과 3/4 단계 연결 종료 같은 일련의 상호작용이 가능하다.

따라서 UDP는 시간에 민감한 환경에서 사용하고, TCP방식은 안정적인 전송을 요구하는 환경에서 사용한다.

TCP 방식은 UDP방식과 달리 전송 중 오류등을 제어할 수 있는 반면, 버퍼링 과정이 필요하기 때문에 처리 지연일 발생할 수 밖에 없다.

netstat -n // tcp 방식에 따라 외부와의 연결 상태 확인 가능. 내부호스트와 외부 호스트 사이의 연결 상태를 확인

로컬 주소 : 자기 자신, 출발지 주소를 의미.
외부 주소 : 목적지 주소

포트번호 : IP주소 뒤에 붙은 번호 ex) 192.168.0.13:1049. 맥주소나 IP 주소 처럼 인터넷 공간에서 사용하는 주소. 16비트로 이루어진 주소. 즉, IP주소를 기준으로 맥주소가 물리적 주소에 해당한다면, 포드번호는 가상적 주소에 해당.
소켓 : 포트번호와 IP주소를 통칭. 운영체제가 논리적인 방식에 따라 서로 떨어진 두 대의 호스트를 연결해주는 인터페이스를 의미.
소켓 생성은 운영체제가 통신에 필요한 내부 자원을 할당한다는 의미이기도 하다.

구분 크기 구성체계 비고
포트번호 16비트 단일 체계 전송 계층
IP 주소 32비트 네트워크 ID와 호스트 ID 인터넷 계층
맥주소 48비트 OUI와 일련번호 데이터 링크 계층

@정리@

UDP 방식 : 버퍼링 기능이 없음.
TCP 방식 : 버퍼링 기능이 있음.
3단계 연결 설정 : TCP 방식에서 송신 전 수행하는 일련의 제어과정.
3/4 단계 연결 설정 : TCP 방식에서 송신 후 수행하는 일련의 제어 과정.
netstat -n 명령어 : 내부 호스트와 외부 호스트 사이의 연결 상태 확인.
포트 번호 : 16비트 체계로 이루어진 가상적이고 논리적인 주소.
소켓 : 운영체제가 논리적인 방식에 따라 서로 떨어진 두대의 호스트를 연결해주는 인터페이스.

post-custom-banner

0개의 댓글