공통 과제
1. TCP와 UDP는 어떠한 차이를 갖는가?
tcp는 서버에서 서버로 또는 클라이언트에서 서버로 데이터를 보낼때, 하나씩 완벽하게 데이터를 보내는 것이다.
비교의 근거TCPUDP
의미 | TCP는 데이터를 전송하기 전에 컴퓨터간에 연결을 설정합니다. | UDP는 시스템이 수신 준비가되었는지 여부를 확인하지 않고 대상 컴퓨터에 직접 데이터를 보냅니다. |
확장 대상 | 전송 제어 프로토콜 | 사용자 데이터 그램 프로토콜 |
연결 타입 | 연결 지향 | 연결이 적음 |
속도 | 느린 | 빠른 |
신뢰할 수 있음 | 높은 신뢰성 | 신뢰할 수 없는 |
헤더 크기 | 20 바이트 | 8 바이트 |
승인 | 사용자의 요청이있을 경우 데이터 확인 및 전송 재전송 기능이 있습니다. | 수신 확인도 걸리지도 않고 손실 된 데이터를 다시 전송하지도 않습니다. |
tcp/ip란 ? 데이터를 보내기 위해 사용하는 프로토콜
tcp를 사용 중인 프로토콜
|
설명 잘함: https://www.youtube.com/watch?v=BEK354TRgZ8
1. 어플리케이션 층
브라우저 -웹서버 가 http 요청, 응답을 통해 통신한다
2. 트랜스포트 층
포트번호를 사용해서 어플리케이션을 찾아주는 역할을 한다.
3. 인터넷 층
송신측 수신측 둘다 ip를 가짐
ip주소로 옳바른 목적지로 찾아갈 수 있게 한다.
4. 네트워크 접속 층
물리주소 == 맥주소를 사용한다
[ TCP 특징 ]
- 연결형 서비스로 가상 회선 방식을 제공한다.
- 3-way handshaking과정을 통해 연결을 설정하고 4-way handshaking을 통해 해제한다.
- 흐름 제어 및 혼잡 제어.
- 높은 신뢰성을 보장한다.
- UDP보다 속도가 느리다.
- 전이중(Full-Duplex), 점대점(Point to Point) 방식.
[ UDP 특징 ]
- 비연결형 서비스로 데이터그램 방식을 제공한다
- 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다.
- UDP헤더의 CheckSum 필드를 통해 최소한의 오류만 검출한다.
- 신뢰성이 낮다
- TCP보다 속도가 빠르다
비 연결형 프로토콜입니다. 연결을 설정하거나 대상 컴퓨터가 수신 준비가되었는지 여부를 확인하지 않으며 데이터를 직접 전송합니다.
신뢰성보다는 연속성이 중요한 서비스 예를 들면 실시간 서비스(streaming)에 자주 사용됩니다
2. 라우터와 스위치의 차이는?
퍼옴... 영상을 봐도 글을 봐도 이해가 잘안됨 그래서 제일 이해가 되는걸로 퍼옴
스위치
- 목적지로 출발한 데이터를 중간에 적합한 경로로 스위칭해주는 역할을 하는것이 스위치이고 스위치는 데이터링크 계층에 속한다. 스위치는 데이터링크 계층에 속해 있으므로 MAC주소 기반으로 동작한다.
라우터
- 라우터 또한 목적지로 가는 적합한 경로를 찾아주는 라우팅 기능을 한다. 라우터는 IP주소를 기반으로 작동하여 네트워크 계층에 속해있다.
그렇다면 둘의 차이는?
- 가장 대표적인 차이는 계층의 차이이다. 라우터는 네트워크계층에서 IP주소를 기반으로 동작하며 스위치는 MAC주소를 기반으로 데이터링크 계층에서 동작한다.
- 스위치는 브로드캐스트 도메인을 구분할 수 없는 반면 라우터는 브로드캐스트 도메인을 구분하여 서로 다른 네트워크 대역을 구분한다.
- 스위치는 불명확한 목적지를 가진 데이터를 처리할 때 모든 포트로 데이터를 퍼뜨리는 브로드캐스트를 하지만 라우터는 해당 데이터를 버린다.
- 스위치는 관리자의 설정이 필요 없지만 라우터는 관리자의 설정으로 라우팅 테이블 생성과 통신을 해야한다.
물데네 전세표응
https://blog.naver.com/hai0416/221592953663
물리 | 컴퓨터가 편지를 작성한다 | 물리적으로 데이터라는 전기적 신호 보냄 |
데이터 링크 | 우편부가 편지를 부산 우체국 목적지로 전달한다 | 공유기에 공유된 수많은 기기 중 어떤 기기에 데이터를 보내야할지 결정 |
네트워크 | 부산우체국에서 어느동, 어느아파트로 보낼지 최적 경로를 배치한다 | 수신 받아야 할 기기의 IP주소 받아서 찾음 |
전송 | 이터를 보내기 위해 준비하고, 데이터 전송 속도 맞춘 후 오류가 생긴 부분 다시 맞춰줌 | |
세션 | 네트워크 통신을 유지하는 세션 관리 -> ex) 로그인시 일정시간동안 네트워크 통신을 유지, 로그아웃 시 통신 끊음 |
|
표현 | 메시지를 기계가 읽을 수 있게 작은 크기로 압축 후 암호화 | |
응용 | 사용자에게 서비스 제공 역할. |
라우터 | 스위치 | |
목적 | 라우터는 서로 다른 네트워크를 연결합니다. | 스위치는 여러 장치를 연결하여 네트워크를 만듭니다. |
층 | 라우터는 계층 3(네트워크 계층)에서 작동하며 네트워크를 다른 네트워크로 연결하는 데 사용된다. 원문보기: https://www.itworld.co.kr/news/167585#csidx0150736dc415676968857279ff77e1c |
스위치는 데이터 링크 계층 및 네트워크 계층에서 작동합니다. |
작업 | 라우터는 패킷이 대상 컴퓨터에 도달하기 위해 따라야 할 최상의 경로를 결정합니다. | 스위치는 프로세스를 수신하여 패킷을 원하는 컴퓨터로 전달합니다. |
유형 | 적응 라우팅 및 비 적응 라우팅. | 회로 스위칭, 패킷 스위칭, 메시지 스위칭. |
라우터란?
라우터는 네트워크와 네트워크를 연결해주는 역할을 한다.
3. WS 와 WAS의 차이는? 이둘을 구분하는 이유는 무엇일까요?
1. 웹 서버와 WAS( Web Application Server )
- 웹 서버는 정적인 컨텐츠( html, css, js )를 제공하는 서버입니다.
- WAS는 DB 조회나, 어떤 로직을 처리해야 하는 동적인 컨텐츠를 제공하는 서버입니다.
즉, 웹 서버와 WAS의 차이는 어떤 타입의 컨텐츠를 제공하느냐의 차이입니다.
구분 이유
Web Server에서는 정적 컨텐츠만 처리하도록 기능을 분배하여 서버의 부담을 줄일 수 있다.
WAS를 통해 요청에 맞는 데이터를 DB에서 가져와서 비즈니스 로직에 맞게 결과를 만들어서 제공함으로써 자원을 효율적으로 사용
아파치 | 톰캣 |
아파치에는 CGI( Common Gateway Interface )라는 것을 제공합니다. CGI는 이름 그대로 인터페이스로서, 웹 서버 상에서 프로그램을 동작시키기 위한 방법을 정의한 프로그램( 또는 스크립트 )입니다. 즉 PHP, Perl, Python 등의 언어들은 CGI를 구현해놓았기 때문에, 아파치에서 다양한 언어로 짜여진 각 프로그램을 실행할 수 있습니다. 예를 들어 아파치에 PHP 모듈을 설치했을 경우, 요청이 왔을 때 아파치는 HTTTP 헤더를 분석하고 파싱하여 PHP로 파라미터를 넘겨줍니다. 그러면 PHP에서는 파라미터를 받아 응답 할 HTML 문서를 만들어서 아파치에 전달하죠. HTML 문서를 전달 받은 아파치는 CSS, JS, img 등 정적인 자원들과 함께 브라우저로 반환합니다. |
그런데 자바는 CGI로 구현되어 있지 않습니다. 자바 자체가 무겁고, Common 라이브러리와 JEE라는 플랫폼이 존재하기 때문에 아파치에서 굳이 CGI를 제공하지 않은 것 같습니다. 그렇기 때문에 톰캣은 Default Servlet을 통해 정적인 파일을 제공해주기 때문에 웹 서버의 역할을 할 수 있는 것입니다. |
4. 브라우저의 주소창에 www.naver.com을 입력하면 어떤 일이 일어날까요? 큰 흐름을 설명해주세요.
외부의 네트워크 환경에서는 private ip 를 찾지 못한다.
따라서 private -> public으로 바꿔줘야하는데 이를 NAT 이라고 한다.
라우팅 과정을 거쳐서 구글 서버에 도착하면
구글서버에 데이터가 도착하면
패킷의 ip헤더에 기록된 구글 서버 ip를 통해 mac 주소를 얻어와야한다. -> ARP 프로토콜을 사용한다
ARP는 라우터가 연결된 네트워크에 브로드캐스팅된다.
목적지 구글서버가 자신의 ip로 온 ARP 요청을 받고 MAC주소를 응답해준다.
목적지 구글 서버의 MAC 주소를 알았으니 데이터가 물리적으로 전달될 수 있다.
데이터 받고 , http Request을 받고
구글서버는 응답으로 Html 응답을 구글서버가 보낸다.
연결 종료