문서만 읽는 건 좀 루즈하다면 - (6) 테코톡 발견, 네트워크 개념 돌아보기

yoorabaek·2022년 9월 11일
0
post-thumbnail

이번 포스트가 네트워크 관련 테코톡 영상 요약에 대한 마지막 게시물이다. 아무래도 여러 용어들이 나오면서 앞에서 정리한 내용들이 좀 뒤죽박죽 섞여서 기억나긴 하지만 이번 포스트를 마무리 짓고 한번 다시 읽어보면서 중요한 개념들은 짚고 넘어가 네트워크 동작 방식에 대해 왜 그렇게 하는지 이해하는 시간을 추가로 가져봐야겠담 🤔



Topic 9. TCP UDP

우선 전송계층에 대해 이해해보자.

End point 간 신뢰성 있는 데이터 전송을 담당하는 계층

신뢰성은 데이터를 순차적/안정적인 전달, 전송은 포트 번호에 해당하는 프로세스에 데이터를 전달하는 것을 의미한다.

(오.. 전송계층이 와닿지 않는다면 전송계층이 없을 때 일어날 문제들을 보면 좀 더 와닿을 거라는 발표자분의 설명)
이 부분은 사실 앞선 발표에서 꽤 여러번 반복 들은 부분이라 일단 캡쳐만..🫠

(앞에선 글씨로 된 설명만 보다가 이 그림 보니까 뭔가 귀욥게 느껴진다하핳)

TCP의 문제점

전송의 신뢰성은 보장하지만, 매번 Connection을 연결해서 시간 손실이 발생하고(3 way-handshake) 패킷을 조금만 손실해도 재전송한다(ACK를 안 보내주니깐!).

그래서 나온 개념이 UDP이다.

UDP (User Datagram Protocol)

TCP보다 신뢰성이 떨어지지만 전송 속도가 일반적으로 빠른 프로토콜이다.

  • Connectionless (단방향)
  • Error Detection
  • 비교적 데이터의 신뢰성이 중요하지 않을 때 사용 (ex. 영상 스트리밍)

TCP의 패킷과 같은 역할을 하는 단위를 User Datagram이라고 한다. UDP 헤더가 추가된 데이터 형태이다. UDP는 데이터를 쪼개지 않고 애플리케이션 단계에서 쪼개는 작업이 들어가게 된다.

(참고 영상 : 👨‍🏫르윈의 TCP UDP)




Topic 10. Web Socket

웹 소켓이란 두 프로그램 간의 메시지를 교환하기 위한 통신 방법 중 하나이다.

웹소켓은 클라이언트가 요청을 보내는 경우에만 서버가 응답하는 단방향 통신인 HTTP 통신과 다르게 데이터 송수신을 동시에 처리할 수 있는 양방향 통신이다. 또한 연속된 데이터를 빠르게 노출시켜야 하는 채팅, 주식, 비디오와 같은 실시간 네트워킹에 사용된다.


웹소켓 이전의 비슷한 기술은 Polling이 있다. 서버로 일정 주기로 요청을 송신한다. 실시간이라고 보긴 어렵다 ㅠ 이걸 보완하기 위해 나온 것이 Long Polling이다. 그리고 Streaming 서버에 요청 보내고 끊기지 않은 상태에서 끊임없이 데이터 수신이 일어나는 방식이다. 서버로 데이터 송신이 어렵다. 이 세가지 방식 모두 HTTP로 통신하기 때문에 Request와 Response 모두 Header가 불필요하게 크다.




웹소켓의 동작 방법 1 : 핸드 쉐이킹

웹소켓의 동작 방법 2 : 데이터 전송

전체 과정 간략히 보기

(참고 영상: [10분 테코톡] 🧲코일의 Web Socket)




Topic 11. ARP 프로토콜

네트워크 상에서 IP 주소(인터넷이 연결된 모든 호스트의 논리적 주소)를 물리적 네트워크 주소로 대응시키기 위해 사용되는 프로토콜이다. 여기서 물리적 네트워크 주소(MAC 주소, 데이터링크 계층에서 사용하는 하드웨어 고유 식별번호)는 이더넷 48비트 네트워크 카드(NIC) 주소를 뜻한다.

따라서 목적지 컴퓨터가 위치한 네트워크를 찾기 위해 IP주소를 사용하며, 해당 네트워크에서 실제 목적지 컴퓨터를 찾기 위해 MAC주소를 사용한다.

계층마다 사용되는 프로토콜이 다른데 IP는 네트워크 계층인 3계층에서 사용되고 MAC 주소는 데이터링크인 2계층에서 사용되기 때문에 ARP 프로토콜을 사용해 MAC주소를 알아내야 한다.

(참고영상 : 🌯서브웨이의 ARP 프로토콜)

0개의 댓글