IP

2024. 6. 11. 15:04·Cs

❓IP(Internet Protocol)

- 인터넷에서 통신을 위한 핵심 프로토콜

- 데이터 패킷을 생성하고 전송하는 방법을 정의하며, 인터넷상에서 컴퓨터와 다른 네트워크 장치들이 서로 통신할 수 있게 함

- 지정한 IP 주소에 패킷이라는 통신 단위로 데이터를 전달할 수 있게 하는 것이 IP의 역할

❔IP 프로토콜의 한계점

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

- 비신뢰성: 중간에 패킷이 사라져도 IP 프로토콜에서 전송하는 데이터가 정확하게 갔는지 확인하지 않음 + 보낸 순서와 받는 순서가 다를 수 있음

- 구분 문제: 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 여러개일 경우 구분이 어려움

❓IP 주소

- 인터넷에 연결하는 장치나 도메인에 할당된 고유 식별자. ex) 192.168.1.1

- 네트워크 계층에서 사용되며, 인터넷상에서 데이터 패킷의 송수신을 가능하게 함

❓IPv4 와 IPv6

- IPv4 주소는 32비트로, IPv6 주소는 128비트로 구성 -> 주소 공간 확장으로 주소 고갈 문제 해결

- IPv4 헤더는 20바이트+옵션 필드 포함 가능, IPv6 헤더는 40바이트+옵션은 확장 헤더로 처리 -> 헤더 구조 간소화

- IPv6은 IPv4에 비해 IP security 프로토콜을 기본적으로 지원 -> 보안 강화

- IPv6은 IP주소, 게이트웨이, DNS 서버 등을 DHCP  없이도 자동으로 설정할 수 있음

❓ ARP(Address Resolution Protocol)

- IP 주소로부터 MAC 주소를 구하는 IP와 MAC 주소의 다리 역할을 하는 프로토콜

- ARP를 통해 가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환. 이와 반대로 RARP를 통해 실제 주소인 MAC 주소를 가상 주소인 IP 주소로 변환

❓ DHCP(Dynamic Host Configuration Protocol)

- IP 주소 및 기타 통신 매개변수를 자동으로 할당하기 위한 네트워크 관리 프로토콜

❓ NAT(Network Address Translation)

- 패킷이 라우팅 장치를 통해 전송되는 동안 패킷의 IP 주소 정보를 수정하여 IP 주소를 다른 주소로 매핑하는 방법

- IPv4 주소 체계만으로는 많은 주소들을 모두 감당하지 못함 -> NAT로 공인 IP와 사설 IP로 나눠서 많은 주소 처리

❓ 홉바이홉 통신

- 통신 장치에 있는 라우팅 테이블의 IP를 통해 시작 주소부터 시작하여 다음 IP로 계속해서 이동하는 라우팅 과정을 거쳐 패킷이 최종 목적지까지 도달하는 통신

- hop(건너뛰는 모습) -> 통신망에서 각 패킷이 여러 개의 라우터를 건너가는 모습을 비유적으로 표현한 것

❔라우팅 테이블

- 송신지에서 수신지까지 도달하기 위해 사용되며 라우터에 들어가 있는 목적지 정보들과 그 목적지로 가기 위한 방법이 들어 있는 리스트

❔게이트웨이

- 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 관문 역할을 하는 컴퓨터나 소프트웨어를 두루 일컫는 용어

❓ 웹브라우저에서 URL 입력 시 웹페이지가 로드되는 과정

사용자가 브라우저 주소창에 URL을 입력

-> 브라우저가 URL의 IP주소를 찾기 위해 캐시에서 DNS 기록을 확인

-> 만약 요청한 URL이 캐시에 없다면 DNS서버에서 해당 도메인네임의 IP주소를 받아옴

-> 브라우저가 해당 웹 서버와 TCP 연결을 시작(완전한 데이터의 전송을 보장하기 위해서 직접 데이터를 보내기 이전에 세션을 수립하는 TCP 3way-handshake를 진행)

-> TCP 연결이 설정되면 브라우저가 웹 서버에 HTTP 요청을 전송

-> 웹 서버는 웹브라우저의 요청을 처리하고, HTTP 응답 메시지를 생성하여 브라우저에 전송

-> 응답을 받은 브라우저가 서버로 부터 받은 데이터를 가지고 html/css를 파싱함

-> 화면을 사용자에게 보여줌

 

[면접 예상 질문]

1. IP 주소의 종류와 차이점은 무엇인가요?

2. 웹브라우저에서 URL을 입력하면 어떤 과정을 거쳐 웹페이지가 로드되나요?

3. NAT(Network Address Translation)의 개념과 필요성은 무엇입니까?

4. DHCP(Dynamic Host Configuration Protocol)의 역할과 기능은 무엇입니까?

5. ARP에 대해서 아는 대로 설명해주세요.


출처:

https://www.cloudflare.com/ko-kr/learning/network-layer/internet-protocol/

https://dreamcoding.tistory.com/33

https://thebook.io/080326/0118/

저작자표시 (새창열림)

'Cs' 카테고리의 다른 글

GET과 POST의 차이  (0) 2024.10.15
라이브러리와 프레임워크의 차이  (0) 2024.06.11
HTTP  (0) 2024.06.11
DOM  (0) 2024.03.10
OAuth 2.0  (0) 2024.01.18
'Cs' 카테고리의 다른 글
  • GET과 POST의 차이
  • 라이브러리와 프레임워크의 차이
  • HTTP
  • DOM
버그잡는고양이발
버그잡는고양이발
주니어 개발자입니다!
  • 버그잡는고양이발
    지극히평범한개발블로그
    버그잡는고양이발
  • 전체
    오늘
    어제
    • 분류 전체보기 (381)
      • React (16)
      • Next.js (5)
      • Javascript (5)
      • Typescript (4)
      • Node.js (2)
      • Cs (16)
      • 트러블 슈팅 (5)
      • Html (1)
      • Css (3)
      • Django (0)
      • vue (0)
      • Java (1)
      • Python (0)
      • 독서 (1)
      • 기타 (3)
      • 백준 (192)
      • swea (31)
      • 프로그래머스 (30)
      • 이코테 (4)
      • 99클럽 코테 스터디 (30)
      • ssafy (31)
      • IT기사 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 인기 글

  • 태그

    코딩테스트준비
    99클럽
    개발자취업
    항해99
    Til
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
버그잡는고양이발
IP
상단으로

티스토리툴바