목록네트워크 (7)
눈송이의 개발생활
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ynPTD/btrYCi8F9VR/Z8AXAOfezeLZOwwK6N5ch1/img.png)
HTTP 종류 HTTP/0.9 ~ HTTP/2.0 : TCP 사용 HTTP/3.0 : UDP 사용 1️⃣ HTTP/0.9 단일 라인으로 구성된 요청 GET이 유일한 method HTML 파일만 전송 가능 2️⃣ HTTP/1.0 Header, Status code, Content-type 포함 1 request + 1 response / connection 매번 새로운 연결로 성능 저하 서버 부하 비용 증가 3️⃣ HTTP/1.1 persistent connection : 지정한 timeout 동안 connection을 닫지 않는 방식 pipelining 기법 도입 하나의 connection에서 응답을 기다리지 않고 순차적인 여러 요청을 연속으로 보내 그 순서에 맞춰 응답을 받는 방식 지연 시간 감소 단점..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Jb8Ld/btrYyVmYASA/2rXkNcNIJd0QR6ub9kOmTK/img.png)
HTTP Hyper Text Transfer Protocol 웹상에서 클라이언트와 서버 간에 요청/응답으로 데이터 주고 받을 수 있는 프로토콜 포트 번호 80번 사용 애플리케이션 레벨의 프로토콜 ⇒ TCP/IP 위에서 작동 비연결(connectionless) 클라이언트가 요청한 응답을 서버에서 보내면 바로 연결이 끊김 무상태(statelss) 연결 끊으면 서버의 통신은 끝나고 상태 정보를 유지하지 않음 Method, Path, Version, Headers, Body로 구성됨 단점 평문 통신이기 때문에 도청이 가능 통신 상대를 확인하지 않기 때문에 위장 가능 완전성을 증명할 수 없어서 변조 가능 HTTP Method 기능 설명 POST create body부분에 데이터 담김. 서버값 변경 GET read..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/T6WYC/btrYCjfrSgK/BTuO9vfcbaWsUpKchnhcRK/img.png)
TCP TCP 3-way handshake가 완료되면 데이터 교환 시작 데이터 전송의 신뢰성을 확보하기 위해 흐름 제어, 혼잡 제어, 재전송 제어를 조합해가며 전송 unreliable network의 4가지 문제 손실 : packet 손실되는 문제 순서 바뀜 : packet의 순서 바뀌는 문제 congestion : 네트워크 혼잡 overload : 수신측(receiver)이 overload되는 문제 흐름 제어(Flow Control) 수신측(receiver) 단말이 수행하는 흐름(데이터 전달 속도) 양 조정 송신측(sender)이 수신측(receiver)보다 속도가 빠른 경우 문제가 발생 수신특에서 제한한 저장 용량을 초과한 이후 도착하는 데이터는 손실될 수 있음 위험을 줄이기 위해 수신측에 맞춰 송신..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/xBqKf/btrYzlTeUDR/MAUIY3ChE5JLfNZDkq3sZK/img.png)
네트워크 계층 중 전송 계층에서 사용하는 프로토콜 전송 계층 : 데이터의 전달 담당. 송신자와 수신자 연결하는 통신 서비스 제공 TCP(Transmission Control Protocol) 데이터를 메시지와 함께 보내기 위해 IP와 함께 사용하는 프로토콜 IP : 데이터 배달 처리 TCP : 패킷 추적 및 관리 연속성보다 신뢰성있는 전송이 중요할 때 신뢰성 : 데이터를 순차적으로 안정적이게 전달 전송 : 포트 번호에 해당하는 프로세스에 데이터 전달 TCP 특징 연결형 서비스(양방향 통신) → 가상 회선 방식 제공 3-way handshaking : 연결 설정 4-way handshaking : 연결 해제 흐름제어 제공 데이터 송신하는 곳/수신하는 곳의 데이터 처리 속도 조절해서 수신자의 버퍼 오버플로우..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/csGqQA/btrYDfDYk1a/k4DY89IBgweyNNw2Jvv1Uk/img.png)
TCP 3-way Handshake TCP 통신을 이용하여 데이터를 전송하기 위해 네트워크 연결 설정하는 과정 TCP 접속을 성공적으로 성립하기 위해 반드시 필요 양쪽 모두 데이터 전송할 준비 되었다는 것 보장 데이터 전달 전, 한 쪽이 다른 쪽이 준비되었다는 것을 알 수 있게 함 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션 수립하는 과정 seq num은 왜 랜덤? 오류가 나서 동시에 패킷을 2개 보내는 경우, 구별이 안되기 때문에 3-way handshake는 왜 하는걸까? 데이터를 전송하기 전에 정확한 전송을 보장하기 위해서 신뢰성을 보장하기 위해서 A(client) 가 B(server)에 연결을 요청하는 경우 1️⃣ A → B : SYN A가 연결 요청 메시지 전송 (SYN) (sequ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bJdVU7/btrYtwgEOGl/OVJHkFtMMipLDnHKN4HmC0/img.png)
REST란? REST : Representational State Transfer → 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 탄생 대규모의 고성능 통신 안정적으로 지원할 수 있음 쉽게 구현하고 수정할 수 있음 → 모든 api 시스템 파악 & 여러 플랫폼에서 사용 가능 웹의 기존 기술 & http 프로토콜 사용 HTTP URI를 통해 자원을 명시하고 HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것 REST 구성 요소 HTTP URI : 자원 모든 자원은 고유 ID를 갖고 있고, 자원은 server에 존재 자원을 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/byvMHL/btrYBde8APv/SteyCva3xVm0oUJ3E9q6y1/img.png)
OSI모델과 TCP/IP모델 초기에 컴퓨터들은 자신의 업체 장비들끼리만 연결되어 있어 통신이 불가능했다. 모든 시스템이 상호 연결되어 데이터를 주고 받기 위해서는 통신 규격이 필요했는데, OSI 모델과 TCP/IP 모델이 대표적이다. TCP/IP 프로토콜은 OSI 모델보다 먼저 개발되었다. 그러므로 TCP/IP 프로토콜의 계층은 OSI 모델의 계층과 정확하게 일치하지 않는다. 두 모델 모두 계층형 이라는 공통점을 가지고 있으며 TCP/IP는 인터넷 개발 이후 계속 표준화되어 신뢰성이 우수인 반면, OSI 7 Layer는 표준이 되기는 하지만 실제적으로 구현되는 예가 거의 없어 신뢰성이 저하되어있다. OSI 7 Layer는 장비 개발과 통신 자체를 어떻게 표준으로 잡을지 사용되는 반면에 실 질적인 통신 자..