Frontend/React

TCP / IP

취업하고싶다! 2024. 8. 30. 13:38

LAN과 WAN이란?

보통 인터넷 라우터를 통해 연결된 좁은 범위에서의 연결된 네트워크를 LAN(Local Area Network)라고 부른다.

  • 그래서 보통 LAN선이라고 부르는 것이다.

이러한 LAN이 모여 세계의 네트워크를 구성하는 방식이 WAN(Wide Area Network)

프로토콜(protocol)

우리가 일상적으로 사용하는 네트워크의 확장 방식은 크게 두 가지 방법이 있다.

  • 한 네트워크를 확장하는 방법
  • 네트워크와 네크워크를 연결하는 방법

여러 네트워크를 연결하는 방법을 인터네트워킹 이라고하는데 인터네크워킹을 통해서 네트워크의 일부가 고장나도 영향이 광범위하게 퍼지지 않거나, 불필요한 통신이 확산되지 않게 한다는 장점이 있다.

이때에 인터넷에 연결되어 있는 컴퓨터들끼리의 소통이 필요한데 이를 위해서 일종의 약속을 하고 있다. 이 공통된 약속을 프로토콜이라고 한다.

현재에는 TCP / IP 프로토콜이 주로 사용하는 약속이다.

즉 프로토콜은 어느 컴퓨터든 일관되게 네트워크를 사용할 수 있게하는 공통 언어라고 생각하면 된다.

TCP / IP란?

인터넷에서 컴퓨터들이 서로 정보를 주고 받는데 쓰이는 통신규약을 인터넷 통신 스위트(Internet Protocol Suite)라고 한다.

이 모음을 통해서 다른 컴퓨터나, 운영체제, 회선간의 통신을 가능하게 해준다.

인터넷이 처음 시작하던 시기쯤 정의되어 현재까지 표준으로 사용하는 TCP(Transmission Control Protocol) 와 IP(Internet Protocol) 에서 가져와 TCP/IP 라고 부른다.

그래서 TCP가 무엇인지?

  • 서버와 클라이언트간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜
  • 데이터를 전송하기 전에 데이터 전송을 위한 연결을 만드는 연결지향 프로토콜
  • 데이터는 네트워크선로를 통해 전달되는 과정에서 손실되거나 순서가 바뀔 수 있는데, TCP는 손실을 검색해내서 이를 교정하고 순서를 재조합 할 수 있게 해줌

TCP의 특징?

  • 신뢰성 - TCP의 가장 중요한 특징은 신뢰할 수 있는 말단 장치간 데이터 전달이다. TCP는 신뢰성을 실현하기 위해 적극적 수신, 통지, 재전송 체계를 사용한다.
  • 흐름제어 - TCP 데이터 세그먼트를 송수신하는 컴퓨터는 CPU와 네트워크 대역폭의 차이 때문에 서로 다른 데이터 속도로 작동할 수 있다.
  • 다중화 - 한 라우터에 많은 프로세스가 TCP통신 서비스를 동시에 사용할 수 있다.
  • 연결형 서비스
  • TCP 연결은 데이터를 양방향으로 운반할 수 있다. - 즉, 하나의 전송선로에서 데이터가 동시에 양쪽방향으로 전송될 수 있는 것
  • TCP 연결은 3way handshake 절차를 사용하여 열린다.

TCP/IP 4계층 모델

TCP / IP 4계층의 모델 주요 프로토콜 역할

4층 응용 계층 (Application Layer) HTTP, FTP, DNS, .. 애플리케이션에 맞추어 통신
3층 전송 계층 (Transport Layer) TCP, UDP, ... IP와 애플리케이션을 중개해 데이터를 확실하게 전달
2층 인터넷 계층 (Internet Layer) IP, ICMP, ARP, RARP, ... 네트워크 주소를 기반으로 데이터를 전송
1층 네트워크 접근 계층 (Network Access Layer) WIFI, Ethernet, ..... 컴퓨터를 물리적으로 네트워크에 연결해서 기기간 전송

IP(Internet Protocol) 란?

IP(Internet Protocol)주소: TCP/IP 구조에서 컴퓨터를 식별하기 위해 사용되는 주소이다.

일반적으로 컴퓨터나 휴대전화, 서버, 인터넷 라우터 등 네트워크 장비에 각각의 IP 주소가 할당되어 있다.

IP주소에는 Private 주소와 public 주소가 있고, LAN 네트워크 내부에서는 Private IP를 쓰고, 인터넷에서는 Public IP주소를 사용한다.

PC는 IP 주소체계를 따라 네 덩이의 숫자로 구분된다. 네 덩이의 숫자로 구분된 IP 주소체계를 IPv4(Internet Protocol version 4)라고 한다. 이는 IP 주소체계의 네 번째 버전을 뜻한다.

  • 현재에는 인터넷 보급률의 증가로 IPv4로 주소 할당할 한계를 넘어서서 IPv6(IP version 6)로 2^(128)개의 IP주소를 표현하고 있다.

IP 주소만 가지고는 네트워크 상에서의 송수신이 가능하지 않다. 일 예로 각 네트워크 기기는 처음부터 제조사에서  할당하는 고유 시리얼인 MAC주소를 IP 주소와 조합해야만 네트워크를 통한 통신이 가능해진다.

  • 이더넷에서는 네트워크상의 송수신 상대를 특정하고자 MAC 주소를 사용하고, TCP,IP 에서는 IP 주소를 사용한다.

따라서 같은 LAN 에 속한 기기끼리 통신을 할때는 우선 상대방의 MAC 주소를 파악하는 과정이 있게 된다.

이때 사용하는 것이 ARP(address resolution protocol)

IP 주소의 구조

서브넷 마스크(subnet mask)

IPv4 주소는 OOO.OOO.OOO.OOO 의 형식으로 되어 있다.

10진수로 표기되어 있지만, 그 실체는 마침표로 구분된 4개의 8비트 필드(8자리 2진수 4개)로 되어있다.

각 8비트 필드는 IPv4 주소에서 1바이트를 나타낸다. IPv4 주소의 바이트를 나타내는 이러한 형식을 점으로 구분된 십진수 형식이라고도 한다.

Ex) 192.168.0.1

앞의 192.168.0은 네트워크 파트이고    // 뒤의 .1부분은 호스트 파트이다.

IPv4주소에서 네트워크부가 어디까지인지 나타내는 것이 서브넷 마스크이다.

  • IP 주소: 192.168.0.1
  • 서브넷 마스크: 255.255.255.0 (1~3까지의 옥텟을 네트워크부로 사용하는 서브넷 마스크이다. 4옥텟은 호스트부 이다.)
  • 네트워크 주소 : 192.168.0.0

옥텟 : 8자리의 2진수 묶음을 옥텟이라고 부른다. IPv4 주소는 4개의 옥텟으로 이루어져 있고, 각각을 1옥텟, 2옥텟, 3옥텟, 4옥텟이라고 부른다.

IP 프로토콜의 한계

IP 프로토콜의 한계

  • 비연결성
  • 비신뢰성

패킷을 받을 대상이 없거나 특정한 이유로 서비스 불능 상태에 빠져도 데이터를 받을 상대의 상태 파악이 불가능하기 때문에 패켓을 그대로 전송하는 비연결성 문제가 있다.

중간에 패킷이 사라지더라도 보내는 기기 측에서는 알 수있는 방법이 없다. 또한 서로 다른 노드를 거쳐서 전송되는 특성상, 보내는 기기측에서 의도한 순서대로 데이터가 도착하지 않을 수도 있다.

또한, 한개의 IP에서 여러 애플리케이션이 작동하는 경우 특정할 수 없다.

이러한 이유로 한계를 극복하기 위해서 TCP와 UDP가 사용되고 있다.

*** 네트워크 접속 기기가 많아지게 된다면 IP 주소를 별도로 관리해야 한다.**

이를 위해서 IPAM 소프트웨어를 활용해 주소를 관리하기도 한다.

  • IP 주소관리? - IP 주소관리(IPAM)은 컴퓨터 네트워크의 밀접하게 관련된 리소스 및 IP주소의 할당 및 사용을 계획하고 관리하기 위해서 컴퓨터 소프트웨어에 구현된 방법론이다.

용어 정리

이더넷(Ethernet) : 컴퓨터 네트워크 기술의 하나로, 일반적으로 LAN, MAN 및 WAN에서 가장 많이 활용되는 기술 규격이다.

주소결정 프로토콜 ARP(address resolution protocol) : MAC 주소를 파악하기 위해 네트워크 전체에 브로드캐스트를 통해 패킷을 보내고, 해당 IP를 가지고 있는 컴퓨터가 자신의 MAC 주소를 Response하게 됨으로써 통신할 수 있게 해주는 프로토콜.

옥텟 : 8자리의 2진수 묶음을 옥텟이라고 부른다. IPv4 주소는 4개의 옥텟으로 이루어져 있고, 각각을 1옥텟, 2옥텟, 3옥텟, 4옥텟이라고 부른다.

IPAM(IP 주소 관리): 풍부한 사용자 경험을 통해 IP 주소 인프라의 종단 간 계획, 배포, 관리 및 모니터링을 가능하게 하는 통합 도구 모음이다. IPAM은 네트워크에서 IP 주소 인프라 서버와 DNS(도메인 이름 시스템) 서버를 자동으로 검색하여 중앙 인터페이스에서 관리할 수 있도록 한다.

'Frontend > React' 카테고리의 다른 글

OSI 7 Layers  (0) 2024.08.22
React - 불변성  (0) 2024.08.21
RSC / RCC  (0) 2024.08.16
Virtual DOM  (0) 2024.08.16
Promise  (0) 2024.08.16