티스토리 뷰

해당 글은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의를 수강하고 정리한 게시글입니다.

인터넷 네트워크

인터넷 통신

클라이언트에서 “Hello, world!” 라는 메시지를 서버에 보내려고 한다.
인터넷에서 컴퓨터 둘은 어떻게 통신할까?

 


클라이언트 컴퓨터가 한국에 있고 서버의 컴퓨터는 해외에 있을 수있다.
이는 해저 케이블이나 인공위성등을 거쳐 연결 될 텐데 이는 인터넷 망은 매우 복잡하다는 걸 의미한다.
이제 복잡한 인터넷에서 어떻게 통신하는지 간단하게 알아보자.

IP(인터넷 프로토콜)

우리가 택배를 보내기위해서 주소를 알고있어야 하듯이
컴퓨터끼리 통신을 하기 위해서도 주소가 필요하다.

[인터넷 프로토콜 역할]
지정한 IP 주소(IP Address)에 데이터 전달
패킷(Packet)이라는 통신 단위로 데이터 전달

 

[IP 패킷 정보]

데이터 통신단위인 패킷에는 출발지 IP, 목적지 IP 및 기타 정보와 전송 데이터(예시: “Hello, world!”)가 담기게 된다.

 

이렇게 담긴 패킷이 목적지 IP에 여러 노드(인터넷)를 거쳐 서버 컴퓨터에 도착하게 된다.

 

IP 프로토콜의 한계

비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송

 

비신뢰성 : 중간에 패킷이 사라지거나 패킷이 순서대로 도착하지 않음..

 

 

프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?

TCP, UDP

사진출처 : TCP/IP 4계층(TCP/IP 4 Layer)

OSI 7 계층에 대한 내용은 [Network] 01. OSI 7계층 참고.

TCP와 UDP는 앞에서 설명한 IP(인터넷 계층, 네트워크 계층)의 상위 계층인 전송계층에 속하는 프로토콜이다.
인터넷 통신을 하기위해서는 보내는 컴퓨터에서 상위 계층에서 아래 계층까지 내려가서 통신하고 받는 컴퓨터에서 하위 계층에서 부터 상위 계층으로 올라가서 통신한다고 생각하면 된다.

 

  • 상위 계층인 프로그램(응용 계층)에서 “Hello, world!”라는 메시지 작성후 Socket 라이브러리를 통해 전달.
  • 그 다음 하위 계층 TCP(전송 계층)에서 정보 생성, 메시지 데이터 포함
  • 그 다음 하위 계층 IP(인터넷 계층)에서 패킷 생성 (TCP 데이터 포함)
  • 그 다음 하위(최하위 계층) 네트워크 인터페이스(or 네트워크 엑세스)에서 LAN 카드를 통한 전기적, 기계적 전송이 이루어진다.

(받는 서버쪽 컴퓨터는 위 순서의 반대로 읽는다고 생각하면 됨)

 

 

이런 식으로 점점 보낼 데이터에 포장이 붙기 시작한다.

기억법 : 택배를 붙일 때 보낼 물품안에 상자를 덮는다고 생각하자. 마찬가지로 서버쪽에서 데이터를 열어볼 때 계층에서 포장을 하나 하나 뜯어본다고 생각하면 된다.

 

TCP(Transmission Control Protocol)

전송 제어 프로토콜로 연결지향, 데이터 전달 보증, 순서 보장등의 특징을 가진다.
신뢰할 수 있는 프로토콜이며 현재는 대부분 TCP를 사용한다.

 

[연결지향 - TCP 3 way handshake (가상 연결)]
: 실제 연결된게 아닌 논리적인 연결


1. 클라이언트에서 서버쪽에 SYN(접속 요청)을 보낸다.
2. 서버에서 응답을 받고 ACK(요청 수락)과 SYC(접속 요청)을 보낸다.
3. 클라이언트에서 응답을 받고 ACK(요청 수락)을 보낸다.

이러한 신호(ACK)들을 주고 받으면서 데이터 전달 보증 및 순서 보장도 가능하도록 하는게 TCP의 큰 특징이다.

(종료시에는 4 way handshake)

  • 1. 클라이언트 : FIN(종료 요청) 2. 서버 : ACK(요청 수락) 3. 서버 : FIN(종료 준비완료) 4. 클라이언트 : ACK(요청 수락)
기억법 : Telephone(전화기라고 생각하자) - 전화로 상대방과 1대1로 주고받는다.

 

UDP(User Datagram Protocol)

TCP와 달리 기능이 거의 없다.(하얀 도화지에 비유) IP와 거의 동일하나 PORT와 체코섬 정도만 추가 단순하고 빠르다.(데이터 전달 및 순서가 보장되진 않음)

기억법 : U(우)편 이라고 생각하자 - 내가 보낼 주소만 있으면 됨..

 

PORT

위의 IP에서 나온 한번에 여러개를 연결해야할 때의 문제를 해결하는 것이 PORT
마치 IP가 아파트라면 PORT는 몇동 몇호의 개념이다. (추가로 MAC은 받을 사람 정보)

DNS(Domain Name System)

마치 휴대폰에 번호를 저장해두면 일일이 번호를 기억하지 않아도 되는 것처럼 기억하기 쉽게 사용하는 것

DNS의 장점은 기억하기 어려운 IP를 쉽게 기억할 수 있게 해주고 IP는 변경되어도 DNS를 알고 있으면 통신이 가능하다.

 

이렇게 인터넷 네트워크에서 통신에 관해 간단히 알아보았고 이제는 HTTP에 대해 좀 더 자세히 알아보자.

'Computer Science > Computer Network' 카테고리의 다른 글

[Network] 06. HTTP 메서드 활용  (0) 2022.02.24
[Network] 05. HTTP 메서드  (0) 2022.02.23
[Network] 04. HTTP 메시지  (0) 2022.02.21
[Network] 03. HTTP 기본  (0) 2022.02.20
[Network] 01. OSI 7계층  (0) 2022.02.18
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함