Network 5

TCP/IP 네트워크 이해하기 (4) - IPv4, ICMP

IPv4 프로토콜다른 네트워크의 특정 대상을 찾는 IPv4 프로토콜 데이터가 정확하게 전달될 것을 보장하지 않는다. (4 계층에서 보장해 줌)IP 헤더는 IP 패킷의 앞부분에 위치하며 IP 주소를 비롯한 각종 제어 정보를 담고 있다. IPv4 헤더는 고정 부분 20 바이트와 가변 부분 0~40바이트로 구성되어 있다. 옵션을 지정하지 않았을 때는 최소 크기는 20바이트이다. 버전 : 버전(Version)은 IP의 버전을 나타내는 영역이다. IPv4이므로 4이다.헤더 길이 : 헤더 길이(Header Length)는 4바이트를 기본 단위로 헤더의 길이를 규정하는 영역이다. IPv4에서는 헤더 길이가 가변이므로 이를 규정하는 영역이 필요하다. 기본값은 5로서, 최소 크기는 20 바이트이고, 옵션 영역을 사용하면..

Network 2025.01.27

TCP/IP 네트워크 이해하기 (2) - 2계층에서 하는 일

2계층(데이터링크 계층)의 역할 물리 계층을 이용해 네트워크 장비 간에 데이터를 전송한다.데이터 링크 계층에서는 일반적으로 이더넷(Ethernet) 프로토콜이 사용된다.  2계층은 하나의 네트워크 대역 즉 같은 네트워크 상에 존재하는 여러 장비들 중에서 어떤 장비가 어떤 장비에게 보내는 데이터를 전달한다.  추가적으로 오류제어 , 흐름제어(누가 누구한테 데이터를 보내는지) 수행한다. 2계층은 하나의 네트워크 LAN 에서만 통신할 떄 사용한다.  다른 네트워크와 통신할 때는 항상 3계층이 도와주어야 한다.3계층의 주소와 3계층의 프로토콜을 이용하여야만 다른 네트워크와 통신이 가능하다. 원하는 목적지에만 데이터를 전달한다.물리계층에서 사용된 허브는 특정한 컴퓨터 한대에만 데이터를 보내려해도 나머지 모든 컴퓨..

Network 2025.01.24

TCP/IP 네트워크 이해하기 (1)

우리가 사용하고 만드는 대부분의 인터넷 서비스는 TCP/IP를 이용해 통신한다.휴대폰 어플에서 인터넷이 안된다고 가정해보자! 아마 이용할 수 있는 어플이 상당히 제한적일 것이다. 어떻게 네트워크를 통해 데이터가 오가는지를 이해하면, 튜닝을 통한 성능 개선이나, 트러블 슈팅등에많은 도움이 된다고 한다.  이 글에서 데이터의 전반적인 흐름을 알아보자!  프로토콜 프로토콜이란?복수의 컴퓨터 사이나 중앙 컴퓨터와 단말기 사이에서 데이터 통신을 원활하게 하기 위한 필요한 통신 규약.신호 송신이 순서, 데이터의 표현법, 오류 검출법 등을 정함. 통신 규약 편지를 보낼때 우편번호, 보내는 주소,  우표 등을 꼭 적어야 한다. 우표를 붙이지 않거나 잘못된 주소를 적게 되면, 일련의 절차 중 하나라도 문제가 생기면 편지..

Network 2025.01.24

HTTP 특징 (Stateless, connectionless)

HTTP 특징http 는 클라이언트 서버 구조로 되어있다. (Request Response 구조)클라이언트가 http 메시지로 서버에 요청을 보내고 서버의 응답이 올때까지 기다린다.서버는 요청에 대한 결과를 만들어서 클라이언트에게 응답한다. 클라이언트 서버 구조는 클라이언트는 UI , 사용성에 집중할 수 있고 서버는 비즈니스 로직에 집중할 수 있는 이점이 있다.양쪽이 독립적으로 진화할수 있다는것이 가장 큰 이점이다.  Stateless vs Stateful 정리 stateless 특성은 응답에 필요한 정보를 모두 실어보내기때문에 중간에 서버가 바뀌어도 올바른 응답을 할 수 있다. 따라서 스케일 아웃이 가능하다. 애플리케이션 설계시 최대한 무상태성으로 설계를 하고 필요한 경우에만 stateful 방식을 취..

Network 2025.01.13

DB와 WAS 간 TCP 통신: 효율적인 커넥션 관리와 흐름, 혼잡 제어

DB와 WAS 서버 간의 통신을 위한 TCP 통신 과정DB 드라이버를 통해 TCP/IP  커넥션을 연결 후 ID ,PW 등을 DB 서버로 보내 내부 인증을 완료하면 생성된 커넥션 객체를 응답받을 수 있다.  초기 TCP/IP 연결 과정(DB 커넥션 풀이 필요한 이유) 초기에 TCP/IP 로 연결하는 과정에서 3 way handshake 로 초기 연결을 하는 과정에서 시간이 많이 걸린다.때문에 DB 호출시 커넥션을 맺게되면 쿼리하는 비용보다 커넥션을 맺는 비용이 더 클수 있다.때문에 TCP/IP 로 DB 와 WAS 서버가 연결된 커넥션들을 커넥션 풀에 미리 생성을 해놓고 애플리케이션 로직은 언제든지 커넥션 풀에 이미 생성되어있는 커넥션 객체 참조를 가져다 쓴다. TCP 커넥션을 맺는 비용은 왜 비쌀까?연결..

Network 2025.01.12