TCP UDP 차이 면접 - TCP UDP chai myeonjeob

안녕하세요.

이 카테고리는 "직무면접 중 CS 지식 대비" 이고, 

이 게시글은 "면접 대비 간단한 정리" 입니다.

그렇기 때문에, 자세한 정보를 얻고 싶으시면 제 글을 보신 후 구글 검색 또는 위키를 참고해주시면 감사하겠습니다.

TCP 및 UDP : 데이터를 전송하기 위해 사용하는 프로토콜

비교 정리 표


TCPUDP연결 지향형 프로토콜비연결 지향형 프로토콜순서 보장 O. 속도는 상대적으로 느린 편순서 보장 X. 속도 상대적으로 빠른 편데이터 신뢰성 보장. 안정적데이터 신뢰성 보장 X. 불안정헤더 크기는 20 byte헤더 크기는 8 byte수신, 준비 확인 O수신, 준비 확인 X오류 발생 시 오류 부분 회복 가능 (다시 전송받음)오류 발생 시 오류 부분 회복 불가능 (날라감)일대일 통신DNS / 일대일 , 일대다, 다대다 통신Email, 파일 송수신, HTTP 등 에 사용동영상, 노래 스트리밍 또는 실시간 서비스 에 사용

TCP와 UDP 차이


TCP UDP 차이 면접 - TCP UDP chai myeonjeob
출처 : https://www.clien.net/service/board/park/13053623

  -  TCP는 목에게 일정 단위로 물을 보낼 때, 먼저 보낸다는 신호를 주고, 물을 전송합니다. 목에서 물을 받았다는 신호를 받으면, 다음 물을 줍니다.

  -  UDP는 목 상태가 어떻든 간에 목의 위치만 파악되면 일정 단위의 물을 계속 보냅니다.

TCP UDP 차이 면접 - TCP UDP chai myeonjeob
출처 : https://shjz.tistory.com/98

이상입니다.

감사합니다!

TCP는 연결형 서비스로 3-way handshaking 과정을 통해 연결을 설정합니다. 그렇기 때문에 높은 신뢰성을 보장하지만 속도가 비교적 느리다는 단점이 있습니다. UDP는 비연결형 서비스로 3-way handshaking을 사용하지 않기 때문에 신뢰성이 떨어지는 단점이 있습니다. 하지만 수신 여부를 확인하지 않기 때문에 속도가 빠릅니다. TCP는 신뢰성이 중요한 파일 교환과 같은 경우에 쓰이고 UDP는 실시간성이 중요한 스트리밍에 자주 사용됩니다.

TCP UDP 차이 면접 - TCP UDP chai myeonjeob

[ GET과 POST 차이 ]

GET은 데이터를 조회하기 위해 사용되는 방식으로 데이터를 헤더에 추가하여 전송하는 방식입니다. URL에 데이터가 노출되기 때문에 보안적으로 중요한 데이터를 포함해서는 안됩니다.

POST는 데이터를 추가 또는 수정하기 위해 사용되는 방식으로 데이터를 바디에 추가하여 전송하는 방식입니다. 완전히 안전하다는 것은 아니지만 URL에 데이터가 노출되지 않아 GET보다는 안전합니다.

TCP UDP 차이 면접 - TCP UDP chai myeonjeob

[ 공인 IP와 사설 IP 차이 ]

  • 공인 IP
    • 전세계에서 유일한 IP로 ISP(인터넷 서비스 공급자)가 제공하는 IP주소
    • 외부에 공개되어 있기 때문에 인터넷에 연결된 다른 장비로부터 접근이 가능하다.
    • 그에 따라 방화벽 등과 같은 보안 설정을 해주어야 한다.
  • 사설 IP
    • 어떤 네트워크 안에서 사용되는 IP주소
    • IPV4의 부족으로 인해 모든 네트워크가 공인 IP를 사용하는 것이 불가능하기 때문에 네트워크 안에서 라우터를 통해 할당받는 가상의 주소이다.
    • 별도의 설정 없이는 외부에서 접근이 불가능하다.

[ 웹 접근성의 국제표준 ]

웹 접근성을 높이기 위해 고안된 웹 표준은 웹에서 표준적으로 사용되는 기술이나 규칙을 의미합니다. 웹 표준을 정하기 위하 W3C(World Wide Web Consortium)이 설립되었으며 웹 표준으로 구조 언어인 HTML, 표현 언어인 CSS, 동작 언어인 Script를 지정하였습니다.

-> 작성한 내용이 틀렸다면 지적해주세요!!

[ OSI 7계층 ]

TCP UDP 차이 면접 - TCP UDP chai myeonjeob
  • 7 계층(응용 계층): 사용자와 직접 상호작용하는 응용 프로그램들이 포함된 계층
  • 6 계층(표현 계층): 데이터의 형식(Format)을 정의하는 계층
  • 5 계층(세션 계층): 컴퓨터끼리 통신을 하기 위해 세션을 만드는 계층
  • 4 계층(전송 계층): 최종 수신 프로세스로 데이터의 전송을 담당하는 계층
  • 3 계층(네트워크 계층): 패킷을 목적지까지 가장 빠른 길로 전송하기 위한 계층
  • 2 계층(데이터링크 계층): 데이터의 물리적인 전송과 에러 검출, 흐름 제어를 담당하는 계층
  • 1 계층(물리 계층): 데이터를 전기 신호로 바꾸어주는 계층

[ HTTP 프로토콜이란? ]

HTTP(Hyper Text Transfer Protocal)이란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜입니다. HTTP는 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동합니다. HTTP는 상태를 가지고 있지 않는 Stateless 프로토콜이며 Method, Path, Version, Headers, Body 등으로 구성됩니다.

TCP UDP 차이 면접 - TCP UDP chai myeonjeob

[ HTTP vs HTTPS ]

HTTP는 평문 데이터를 전송하는 프로토콜이기 때문에, HTTP로 비밀번호나 주민번호 등을 주고 받으면 제3자에 의해 조회될 수 있습니다. 이러한 문제를 해결하기 위해 HTTP에 암호화가 추가된 프로토콜이 HTTPS입니다. HTTPS에는 대칭키 암호화와 비대칭키 암호화가 모두 사용됩니다. 비대칭키 암/복호화는 비용이 매우 크기 때문에 서버와 클라이언트가 주고받는 모든 메세지를 비대칭키로 암호화하면 오버헤드가 발생할 수 있습니다. 그래서 서버와 클라이언트가 최초 1회로 서로 대칭키를 공유하기 위한 과정에서 비대칭키 암호화를 사용하고, 이후에 메세지를 주고 받을 때에는 대칭키 암호화를 사용합니다. 이러한 과정을 정리하면 다음과 같습니다.

  1. 클라이언트(브라우저)가 서버로 최초 연결 시도를 함
  2. 서버는 공개키(엄밀히는 인증서)를 브라우저에게 넘겨줌
  3. 브라우저는 인증서의 유효성을 검사하고 세션키를 발급함
  4. 브라우저는 세션키를 보관하며 추가로 서버의 공개키로 세션키를 암호화하여 서버로 전송함
  5. 서버는 개인키로 암호화된 세션키를 복호화하여 세션키를 얻음
  6. 클라이언트와 서버는 동일한 세션키를 공유하므로 데이터를 전달할 때 세션키로 암호화/복호화를 진행함

공개키로 암호화된 메세지는 개인키를 가지고 있어야만 복호화가 가능하기 때문에, 서버(기업)을 제외한 누구도 원본 데이터를 얻을 수 없습니다.

TCP UDP 차이 면접 - TCP UDP chai myeonjeob

[ 3 Way-Handshake ]

3 Way-Handshake란 TCP 네트워크에서 통신을 하는 장치가 서로 연결이 잘 되었는지 확인하는 방법입니다. 송신자와 수신자는 총 3번에 걸쳐 데이터를 주고 받으며 통신이 가능한 상태임을 확인합니다.

TCP UDP 차이 면접 - TCP UDP chai myeonjeob

취준 과정

[SW 기술 면접] 네트워크(전산 기본, TCP/UDP, HTTP, 웹, Spring)

딱지의겨울

·

2021. 6. 9. 17:38

반응형

📌 전산 기본

🔹 OST 7계층에 대해서 설명해 주세요. 

  • OSI 7 계층은 통신 접속에서 완료까지의 과정을 7단계로 정의한 국제 통신 표준 규약입니다. 
  • 하위 계층: 물리 / 데이터링크 / 네트워크, 상위 계층: 전송 / 세션 / 표현 / 응용 
  • 물리 계층전송하는데 필요한 기능을 제공하고 장비로는 통신 케이블과 허브가 존재. 
  • 데이터 링크 계층송수신을 확인하고, MAC Address를 가지고 통신하며 장비로는 브릿지와 스위치가 존재. 
  • 네트워크 계층패킷을 네트워크 간의 IP를 통하여 데이터를 전달하고 경로 설정, 트레픽 제어 등을 수행합니다.  장비로는 라우터. 
  • 전송 계층은 상위 3계층과 하위 3계층의 인터페이스를 담당하고 두 호스트 시스템으로부터 발생하는 데이터의 흐름을 제공합니다. 
  • 세션 계층은 통신 시스템 간 사용자간의 연결을 유지 및 설정힙니다. 
  • 표현 계층은 세션 계층과 응용 계층 간의 데이터를 알맞게 변환하는 기능을 합니다. 
  • 응용 계층은 사용자가 네트워크에 접근할 수 있도록 서비스를 제공합니다. 

🔹 TCP/IP 4계층에 대해서 설명해 주세요.

  • LINK 계층
    • 물리적인 영역의 표준화에 대한 결과. 가장 기본이 되는 영역으로 LAN, WAN, MAN 과 같은 네트워크 표준과 관련된 프로토콜을 정의하는 영역. 
  • IP 계층
    • 경로 검색을 해주는 계층. IP 자체는 비연결지향적이며 신뢰할 수 없는 프로토콜이다. 데이터를 전송할 때마다 거쳐야 할 경로를 선택해 주지만, 그 경로는 일정치 않음. 경로 재설정 과정에서 데이터에 대한 오류 발생에 대한 대비가 되어있지 않은 프로토콜. 
  • TCP/UDP 계층
    • 데이터의 실제 송 수신을 담당함. UDP는 TCP에 비해 상대적으로 간단하고, TCP는 신뢰성 있는 데이터의 전송을 담당함. TCP는 데이터가 순서에 맞게 전송이 갔는지 확인 절차를 걸쳐서 신뢰성을 부여한 프로토콜. 
  • APPLICATION 계층
    • 프로그램의 성격에 따라 데이터 송수신에 대한 규칙들이 정해지기 마련인데 이를 가리켜 Application 프로토콜 이라고 함.

🔹 DNS가 무엇인가요?

  • IP 주소를 사

🔹 도메인 이름으로 실제 IP를 어떻게 찾을 수 있는 지 흐름을 설명해 주세요. 

  • 웹 프라우

 

📌 TCP/UDP

🔹 TCP와 UDP의 차이에 대해서 설명해주세요.

  • TCP: 연결형 서비스가상 회선 방식을 제공하고 3-way-handshaking 과정을 통해 연결을 설정하고 4-way-handshaking을 통해 해제합니다. TCP는 높은 신뢰성을 보장하기 위해 3-way-handshaking 기능 등을 하기 때문에 UDP 보다 속도가 느립니다. 그래서 연속성보다 신뢰성 있는 전송이 중요할 때 사용하는 프로토콜입니다. 
  • UDP: 비연결형 서비스데이터를 데이터그램 단위로 처리하는 프로토콜. 데이터를 주고받을 컴퓨터끼리 직접 연결하고자 할 때 UDP를 사용합니다. TCP에 비해 속도는 빠른 편이기 때문에 데이터 유실이 일어나도 큰 상관이 없는 스트리밍이나 화면 전송에 사용됩니다. 
TCP UDP 차이 면접 - TCP UDP chai myeonjeob

🔹 TCP 헤더에 대해 설명해주세요. 

  • 웹 프라우

🔹 MTU가 무엇인가요?

  • 웹 프라우

🔹 3-way hand shake 가 무엇인가요?

  • TCP에서 클라이언트와 서버가 데이터 전송 준비가 되었다는 것을 보장하고, 실제로 전달이 시작되기 전에 다른 쪽이 준비된 것을 알리는 역할. 
  • (1) 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보냄. 클라이언트는 응답을 기다리는 SYN_SENT 상태가 됨. 
  • (2) 서버는 SYN 요청을 받고 클라이언트에게 요청을 수락한다는 ACK 와 SYN flag 패킷을 발송. 서버는 SYN_RECIEVED 상태가 됨. 
  • (3) 클라이언트는 서버에게 ACK패킷을 보내 데이터 송수신 상태가 됨.  

🔹 4-way hand shake 가 무엇인가요?

  • TCP에서 세션을 종료하기 위해 수행되는 절차. 
  • (1) 클라이언트가 연결을 종료하겠다는 FIN플래그 전송. 
  • (2) 서버는 확인 메시지를 보내고 자신의 통신이 끝날때까지 기다림. 
  • (3) 서버가 통신이 끝났으면 연결이 종료되었다고 클라이언트에게 FIN 패킷을 전송. 
  • (4) 클라이언트는 확인 메시지를 보냄. 

 

📌 HTTP

🔹 HTTP 프로토콜에 대해서 아는대로 말해주세요.

  • Hyper Text Tranfer Protocol의 약자로 TCP/IP를 이용하는 응용 프로토콜. 
  • 연결 상태를 유지하지 않는 비연결성 프로토콜. 

🔹 HTTP와 HTTPS 의 차이는 무엇인가요?

  • HTTP는 암호화가 추가되지 않았기 때문에 보안에 취약한 반면, HTTPS는 안전하게 데이터를 주고받을 수 있도록 암호화/복호화 과정이 포함되어 속도가 HTTP 보다 느림. 

🔹 HTTPS가 동작하는 방식에 대해서 설명해 주세요.

  • d

🔹 HTTP 1.0과 1.1의 차이는 무엇인가요?

  • d

🔹 HTTP 2와 그 특징에 대해서 설명해 주세요. 

  • d

🔹 HTTP 헤더의 구조에 대해서 설명해 주세요.

  • d

🔹 keep-alive 헤더에 대해서 설명해 주세요.

  • HTTP 기본 구조를 바탕으로 맺어진 소켓 연결이 종료된 시점부터 웹서버에 정의된 Keep alive Timeout까지 기존 연결을 유지하는 기능. 
  • 즉, 정의된 Timeout 내에 새로운 HTTP 요청이 발생한다면 연결을 유지하고 그렇지 않다면 연결을 끊는 기능. 

🔹 HTTP GET과 POST의 차이는 무엇인가요?

  • GET method는 웹 브라우저에서 웹 서버에 스트링 형태로 데이터를 전달하여 요청하는 방식이다. 
  • GET은 쿼리 스트링이 그대로 보여지기 때문에 보안성이 취약하지만 POST에 비해 상대적으로 속도가 빠른 장점이 있다. 
  • POST는 웹 브라우저가 웹 서버에 데이터를 전달할 때 사용하며, 주로 대용량 데이터 전달할 때 사용된다. 
  • 주소창에 전송하는 데이터의 정보가 노출되지 않아 보안성이 높고, 스트링 뿐만 아니라 객체들의 값도 전송할 수 있다는 장점이 있다. 

🔹 쿠키와 세션에 대해서 설명해 주세요.

  • HTTP의 비연결성이라는 특성 때문에 웹 페이지에 머물고 있는 사용자의 상태를 지속시키기 위해 쿠키와 세션을 사용한다. 
  • 세션은 사용자의 

 

📌 WEB

🔹 웹 브라우저에서 서버로 요청했을 때, 흐름을 설명해 주세요. 

  • 웹 프라우저에서 요청을 보내면 DNS를 조회하여 ip와 port 정보를 가져오고 HTTP 요청 메시지를 생성함. 
  • SOCKET 라이브러리를 통해 TCP/IP로 3 way handshake를 실행 서버와 연결함. 
  • 운영체제 TCP/IP 계층으로 데이터 전송을 하기 위해 데이터를 전달함. 
  • HTTP 메시지가 포함된 TCP/IP 패킷을 생성함. 
  • 패킷 정보가 인터넷으로 보내짐. 
  • 서버에 요청 패킷이 도착하여 패킷 껍데기는 버리고 HTTP 메시지를 서버가 해석
  • HTTP 응답 메시지를 마찬가지 방식으로 패킷을 생성하여 응답 패킷을 전달. 
  • 응답 패킷이 도착하면 웹 브라우저가 HTML 랜더링하여 화면에 보여줌. 

 

🔹 CROS란 무엇인가요?

  • 추가적인 HTTP header를 사용해서 애플리케이션이 다른 origin의 리소스에 접근할 수 있도록 하는 메커니즘을 말함. 하지만 다른 origin에서 내 리소스에 함부로 접근하지 못하게 하기 위해서 사용됨. 
  • 내가 서비스 하고 있지 않은 사이트에서 세션을 요청해 세션을 획득하는 요청을 막고 내가 허용한 origin들만 요청할 수 있도록하기 위해 필요함. 

 

🔹 웹 서버와 웹 어플리케이션 서버(WAS)의 차이는 무엇인가요?

  • 웹 서버는 정적인 컨텐츠를 제공하는 서버이고, 웹 어플리케이션 서버는 DB 조회 등 동적인 컨텐츠를 제공하는 서버입니다. 
  • 웹 어플리케이션 서버 앞에 웹 서버를 둬서 정적인 컨텐트를 처리하고, WAS는 애플리케이션의 로직만 수행하도록 기능을 분배하여 서버의 부담을 줄일 수 있습니다. 

 

🔹 REST

  • HTTP URI를 통해 자원을 명시하고, HTTP METHOD (POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD 연산을 적용하는 것을 의미함.
  • HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하고, 별도의 인프라를 구축할 필요가 없다는 장점이 있다. 

 

🔹 REST API 

  • REST 기반으로 서비스 API를 구현한 것. 
  • HTTP를 지원하는 프로그램 언어로 클라이언트와 서버를 구현할 수 있음

 

🔹 RESTful 하게 API를 디자인 한다는 것.

  • 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것.
  • 동일한 URI의 행위에 맞게 POST, GET, DELETE, PATCH 등의 메소드를 사용
  • URI Path에 불필요한 파라미터를 넣지 않음. 단계를 심플하게 설계함. 

 

🔹 API Gateway란 무엇인가요?

  • 서비스로 전달되는 모든 API 요청의 관문 역할을 하는 서버로 시스템의 아키텍처를 내부로 숨기고 외부의 요청에 대한 응답만을 적절한 형태로 응답합니다. 
  • 클라이언트 요청을 일괄적으로 처리할 수 있고, 전체 시스템의 부하를 분산 시키는 로드 밸런서의 역할을 할 수 있다는 장점이 있습니다. 

 

🔹 API Gateway가 다운되면 모든 API를 사용 못할지도 모르는데, 어떤 방안을 마련해야 할까요?

 

 

반응형

공유하기

게시글 관리

구독하기1일1코딩

'취준 과정' 카테고리의 다른 글

[네트워크] REST / REST API / RESTful 개념 및 특징  (0)2021.08.19[SW 기술 면접] JAVA 편  (0)2021.08.17[SW 기술 면접] 웹, JAVA 관련 Part  (0)2021.06.082021 LG 온라인 인적성 검사 개요 및 정리 (에듀윌 참고)  (1)2021.05.21

취준 과정 카테고리와 연관된 콘텐츠

  • [네트워크] REST / REST API / RESTful 개념 및 특징

  • [SW 기술 면접] JAVA 편

  • TCP UDP 차이 면접 - TCP UDP chai myeonjeob

    [SW 기술 면접] 웹, JAVA 관련 Part

  • 2021 LG 온라인 인적성 검사 개요 및 정리 (에듀윌 참고)

TCP UDP 차이 면접 - TCP UDP chai myeonjeob

이전 포스트

[SW 기술 면접] 웹, JAVA 관련 Part

다음 포스트

[SW 기술 면접] JAVA 편

0개의 댓글

댓글 작성