네트워크
1. 네트워크란
물리적 전송매체를 사용하여 서로 연결된 장치세트
컴퓨터 네트워크는 하드웨어 데이터 및 소프트웨어 와 같은 정보 및 리소스를 통신하고 공유하기 위해 서로 연결된 컴퓨터그룹
네트워크 망의 종류
LAN 한건물 또는 사무실 내의 호스트 간에 연결된 소규모 네트워크
WAN LAN과 LAN을 연결하는 대규모 네트워크
2. IP란
Internet Protocol Address 컴퓨터 네트워크에서 기기들이 서로를 인식하고 통신하기 위해 사용하는 식별번호
3. 패킷이란
네트워크 상에서 전송하는 데이터를 일정한 크기로 자른 작게 나뉘어진 데이터의 묶음
누구에게 어디로 무엇을 보내야하는지에 대한 정보가 담겨있고 안전성 때문에 나눠서 보낸다.
4. TCP/IP UDP차이
4.1 TCP
연결지향형 전송규약
흐름 중심 프로토콜 통신을 주고받는 것을 중요시한다.
중간에 패키싱 손실될경우 재전송을 통해 신뢰성을 보장한다.(대신 느리다.) 대부분에 통신에서 사용되고 특히 파일이나 데이터 전송시에 사용한다.
바이트스트림을 사용해서 데이터 경계구분이 없다. 송수신자 모두가 소켓이라는 종단점을 생성함으로써 이루어진다.
순서가보장되어있다.
3WAY handshake를 통해 행해진다.
3 way-handshake란 TCP 네트워크에서 통신 하는 장치가 서로 연결이 잘 되었는지 확인하는 방법
송신자와 수신자는 총 3번에 걸쳐 데이터를 주고 받으며 통신이 가능한 상태인지 확인한다.
4 way-handshake란 TCP 네트워크에서 통신 하는 장치의 연결을 해제하는 방법
송신자와 수신자는 총 4번에 걸쳐 데이터를 주고 받으며 연결을 끊는다.
4.2 UDP
UDP는 비연결형 프로토콜이다. 데이터 중심프로토콜로 주고받는 통신보다 데이터를 일방적으로 보내는 것을 중요시한다.
순서가 보장되지 않는다. 데이터 전송의 신뢰성이 보징되ㅏ지 않으나 빠르다.
P2P, 스트리밍, 전화에 사용된다.
흐름제어, 오류제어 또는 손상된 세그먼트의 수신에 대한 재전송을 하지 않는다.
종종 클라이언트는 서버로 짧은 요청을 보내고, 짧은 응답을 기대한다. 만약 요청 또는 응답이 손실된다면, 클라이언트는 time out 되고 다시 시도할 수 있으면 된다. 코드가 간단할 뿐만 아니라 TCP 처럼 초기설정(initial setup)에서 요구되는 프로토콜보다 적은 메시지가 요구된다.
UDP를 사용한 것들에는 DNS가 있다. 어떤 호스트 네임의 IP 주소를 찾을 필요가 있는 프로그램은, DNS 서버로 호스트 네임을 포함한 UDP 패킷을 보낸다. 이 서버는 호스트의 IP 주소를 포함한 UDP 패킷으로 응답한다. 사전에 설정이 필요하지 않으며 그 후에 해제가 필요하지 않다.
5. HTTP란
HTTP(Hyper Text Transfer Protocol)이란 데이터를 주고 받기 위한 프로토콜이며, 서버/클라이언트 모델을 따른다.
HTTP는 상태 정보를 저장하지 않는 Stateless의 특징과 클라이언트의 요청에 맞는 응답을 보낸 후 연결을 끊는 Connectionless의 특징을 가지고 있다.
장점
통신간의 연결 상태 처리나 상태 정보를 관리할 필요가 없어 서버 디자인이 간단하다.
각각의 HTTP 요청에 독립적으로 응답만 보내주면 된다.
단점
이전 통신의 정보를 모르기 때문에 매번 인증을 해줘야 한다.
이를 해결하기 위해 쿠키(cookie)나 세션(session)을 사용해서 데이터를 처리한다.
6. HTTP와 HTTPS의 차이
1.HTTP는 평문 데이터를 전송하는 프로토콜이기 때문에, HTTP로 중요한 정보를 주고 받으면 제 3자에 의해 조회될 수 있다.
-TCP/IP 구조의 통신은 전부 통신 경로 상에서 엿볼 수 있다. 패킷을 수집하는 것만으로 도청할 수 있다. 평문으로 통신을 할 경우 메시지의 의미를 파악할 수 있기 때문에 암호화하여 통신해야 한다.
2.통신 상대를 확인하지 않기 때문에 위장이 가능하다.
-HTTP 에 의한 통신에는 상대가 누구인지 확인하는 처리는 없기 때문에 누구든지 리퀘스트를 보낼 수 있다. IP 주소나 포트 등에서 그 웹 서버에 액세스 제한이 없는 경우 리퀘스트가 오면 상대가 누구든지 무언가의 리스폰스를 반환한다. 이러한 특징은 여러 문제점을 유발한다.
3.완전성을 증명할 수 없기에 변조가 가능하다.
-여기서 완전성이란 정보의 정확성 을 의미한다. 서버 또는 클라이언트에서 수신한 내용이 송신측에서 보낸 내용과 일치한다라는 것을 보장할 수 없는 것이다. 리퀘스트나 리스폰스가 발신된 후에 상대가 수신하는 사이에 누군가에 의해 변조되더라도 이 사실을 알 수 없다. 이와 같이 공격자가 도중에 리퀘스트나 리스폰스를 빼앗아 변조하는 공격을 중간자 공격(Man-in-the-Middle)이라고 부른다.
이러한 문제를 해결하기 위해 HTTP에 암호화가 추가된 프로토콜이 HTTPS이다.
HTTPS는 SSL의 껍질을 덮어쓴 HTTP라고 할 수 있다. SSL(Secure Socket Layer)은 인터넷을 통해 전달되는 정보를 보호하기 위해 개발한 통신 규약이다.
즉, HTTPS 는 새로운 애플리케이션 계층의 프로토콜이 아니라는 것이다. HTTP 통신하는 소켓 부분을 SSL(Secure Socket Layer) or TLS(Transport Layer Security)라는 프로토콜로 대체하는 것 뿐이다. HTTP 는 원래 TCP 와 직접 통신했지만, HTTPS 에서 HTTP 는 SSL 과 통신하고 SSL 이 TCP 와
통신 하게 된다. SSL 을 사용한 HTTPS 는 암호화와 증명서, 안전성 보호를 이용할 수 있게 된다.
HTTP는 원래 TCP와 직접 통신했지만, HTTPS에서 HTTP는 SSL과 통신하고 SSL이 TCP와 통신함으로써 암호화와 증명서, 안전성 보호를 이용할 수 있게 된다.
7. 쿠키와 세션의 차이
쿠키는 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일
HTTP에서 클라이언트의 상태 정보를 PC에 저장했다가 필요시 정보를 참조하거나 재사용할 수 있다.
세션은 일정 시간동안 같은 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고, 그 상태를 유지시키는 기술이다.
즉, 방문자가 웹 서버에 접속해 있는 상태를 하나의 단위로 보고 그것을 세션이라 한다.
8. www.naver.com에 접속할 때 생기는 과정
1.사용자가 브라우저에 URL(www.naver.com)을 입력
2.DNS 서버에 도메인 네임으로 서버의 IP 주소를 찾음
3.IP 주소로 웹 서버에 TCP 3 handshake로 연결 수립
4.클라이언트는 웹 서버로 HTTP 요청 메시지를 보냄
5.웹 서버는 HTTP 응답 메시지를 보냄
6.도착한 HTTP 응답 메세지는 웹 페이지 데이터로 변환되고, 웹 브라우저에 의해 출력
9. OSI 7 layer와 각 계층
7 계층(응용 계층) : 사용자에게 통신을 위한 서비스 제공. 인터페이스 역할
6 계층(표현 계층) : 데이터의 형식(Format)을 정의하는 계층 (코드 간의 번역을 담당)
5 계층(세션 계층) : 컴퓨터끼리 통신을 하기 위해 세션을 만드는 계층
4 계층(전송 계층) : 최종 수신 프로세스로 데이터의 전송을 담당하는 계층 (단위 :Segment) (ex. TCP, UDP)
3 계층(네트워크 계층) : 패킷을 목적지까지 가장 빠른 길로 전송하기 위한 계층 (단위 :Packet) (ex. Router)
2 계층(데이터링크 계층) : 데이터의 물리적인 전송과 에러 검출, 흐름 제어를 담당하는 계층 (단위 :frame) (ex. 이더넷)
1 계층(물리 계층) : 데이터를 전기 신호로 바꾸어주는 계층 (단위 :bit) (장비: 케이블,리피터,허브)
10. GET과 POST의 차이
GET은 데이터를 조회하기 위해 사용되는 방식으로 데이터를 헤더에 추가하여 전송하는 방식
URL에 데이터가 노출되므로 보안적으로 중요한 데이터를 포함해서는 안된다.
POST는 데이터를 추가 또는 수정하기 위해 사용되는 방식으로 데이터를 바디에 추가하여 전송하는 방식
완전히 안전하다는 것은 아니지만 URL에 데이터가 노출되지 않아 GET 보다는 안전하다.
'개념정리' 카테고리의 다른 글
| 사설 ip 와 공인 ip (0) | 2023.09.02 |
|---|---|
| JDK JRE JVM (0) | 2023.09.02 |
| 필기시험준비3 (1) | 2023.08.26 |
| 필기시험준비2 (0) | 2023.08.25 |
| 필기 시험 준비.. (0) | 2023.08.24 |