[면접]백엔드와 밀접한 네트워크 용어 정리

Gooder·2021년 7월 22일
31

CS 면접 준비하기

목록 보기
3/5
post-custom-banner

http

개발자는 HTTP와 정말 밀접하게 살아갑니다.
특히 백엔드 개발자는 HTTP에대한 이해를 한 뒤에 기술을 쌓아야합니다.

4계층(전송 계층)

애플리케이션 - HTTP, FTP

전송 - TCP,UDP(IP에 올려서 보완해주는 것)

인터넷 - IP

네트워크 인터페이스 - LAN 카드 등등의 LAN장비
http와 OSI 7계층에 관한 내용은 추후 포스팅으로 다룰 예정이니 이 게시글에서는 이런게 있구나 정도로 봐주시면 감사하겠습니다.

인터넷 네트워크

IP - 인터넷 프로토콜

IP 패킷 최소한의 규칙

출발지 IP, 목적지 IP, 메세지 등의 전송하고 싶은 데이터(이 안에 TCP와 관련된 데이터를 넣어준다.)

IP 프로토콜의 한계

  1. 비연결성
    대상이 없거나 서비스 불능 상태여도 패킷이 전송되고 보내는 사람은 그걸 모른다.

  2. 비신뢰성
    중간에 패킷이 사라지거나 순서대로 오지않을 수 있다.

  1. 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일 때, 구분이 어렵다.

이를 해결하기위해서 사용하는 것이 TCP가 해결해준다.

IP만으로 해결이 안됐던 문제들이 IP패킷에 TCP세그먼트에 출발지,목적지 PORT, 전송 제어, 순서, 검증 정보 등을 넣어서 IP패킷으로 전송하려는 데이터와 함께 보낸다.

TCP 특징

1. 연결지향

3 way handshake

클to섭 SYN -> 섭to클 SYN+ACK -> 클to섭 ACK -> 연결이 확인되면 데이터 전송

2. 데이터 전달 보증

전송하면 잘 받았다는 신호를 보내준다.

3. 순서 보장

순서가 중간에 잘못오면 서버가 클라이언트에게 재전송을 요청한다.

IP가 가지는 한계를 해결할 수 있다. 이 모든 것은 TCP 세그먼트에 전송정보나 검증정보 등을 넣어서 전송하기때문이다. 따라서, TCP는 신뢰할 수 있는 프로토콜이다.

UDP의 특징

TCP와 함께 사용하면서 최적화할 때 주로 사용.
IP + PORT + 체크섬(제대로 왔는지 검증해주는 데이터) +etc.. 의 구조를 가지고있다.

PORT

한 번에 둘 이상을 연결해야할 때 빛을 발한다.
같은 IP 내에서 프로세스를 구분해서 사용할 수 있게해준다. 즉, 데이터가 들나드는 통로를 정해줘서 그 통로로 통신을 하는 것이다.

DNS

Domain Name System
전화번호부 같은 서버다.

URI

Uniform 리소스 식별하는 통일된 방식
Resource 자원, URI로 식별할 수 있는 모든 것. (실시간 교통정보 등등)
Identifier(다른 항목과 구분하는데 필요한 정보)
URI - L(locator) , N(name) 또는 둘 다 추가로 분류될 수 있다.
L - 리소스가 이 위치에 있어요.
N - ㅇㅇ가 현재 어디 살고있다 할 때 ㅇㅇ

scheme://[userinfo@]host[:port][/path][?query][#fragment]

  1. scheme - 주로 프로토콜 사용(어떤 방식으로 자원에 접근할 것인지에대한 약속 및 규칙)

  2. userinfo - 사용자 정보를 포함

  3. host - 호스트명, 도메인 혹은 ip 주소를 직접사용가능(localhost 등등)

  4. PORT - 접속포트 , 일반적으로 생략한다. 생략시 http -80 https - 443을 이용

  5. path - 경로

  6. query - ‘key = value’형태, ?로 시작하고 &로 조건을 추가할 수 있다. query parameter, query string 등으로 부른다. query string으로 불리는 이유는 넘겨줄 때, string으로 한꺼번에 넘기기 때문이다.

  7. fragment - html 내부 북마크 등에 사용한다. 서버에서는 사용하지않는다.

플로우(통신이 이뤄지는 방식)

DNS 조회해서 필요한 정보를 담아서 HTTP 요청 메시지를 생성한다.
웹 브라우저가 생성한 HTTP 메세지를 SOCKET 라이브러리를 통해서 전달한다.

TCP/IP 패킷을 생성해서 그 안에 HTTP 메세지를 넣어주고 LAN 카드를 통해서 인터넷으로 보낸다.
받으면 패킷을 까서 버리고 안의 내용을 본다.
받은쪽에서 메세지 내용을 보고 그에 맞는 내용을 같은 방식으로 전송한다.

이런 방식으로 통신이 이루어진다.

profile
세상을 변화시킬 신스틸러 서비스를 만들고싶은 개발자 Gooder 입니다.
post-custom-banner

0개의 댓글