IP와 TCP의 패킷 조립에 대하여...
글쓴이: lovemyin / 작성시간: 수, 2005/10/19 - 3:57오후
TCP는 신뢰성이 있다고 하고 IP는 없다고 합니다.
IP 프로토콜은 비신뢰성, 비연결지향성 프로토콜입니다. 실제적으로 송신측에서 데이터를 전송하면 IP datagram으로 쪼개어서 나갈것이며 수신측 IP Layer에서는 그것을 받아 Reassemble 작업을 수행할 것입니다.
그렇다면 TCP계층에 있는 Sequence Number도 세그먼트를 조립할 때 쓰인다고 하였는데... IP에서 이미 조립해서 올리는것을 TCP에서 또 조립을 하나요???
두가지가 헤깔려서 질문올립니다.
Forums:
예. 두곳에서 다해야 합니다. 반드시.1) ip refragmen
예. 두곳에서 다해야 합니다. 반드시.
1) ip refragmentation( 하부하드웨어의 MTU가 각각 틀릴 수 있는데, 왜냐? 다양하니까... 이더넷, 토큰링, 시리얼, ATM 등등, 이에 비의존적인 전송을 보장해야하고, 라우팅을 해야하기 때문에 fragment했는데, 이를 수신측에서는 다시 모아서 합쳐서리....xx해야하기 때문.....)
2) tcp reassembly(비신뢰적인 프로토콜을 신뢰성있게 조립, 즉, 순서, 중복등 제어)
3) contents : 응용에서 사용
* 1),2)가 가지는 프로토콜 오버헤드는 결코 작지 않아서, 성능에 많은 영향을 주기도 하고, 버퍼도 많이 필요하게(메모리)된다는...
* 1)2)는 보통 운영체제가 처리하는데, IDS, IPS등을 제작하는 사람은 이를 사용자 영역에서 코딩하게 되는 경우가 있음.
* 3에서 컨텐츠를 특정 패턴과 비교하기도 하는데, 이때 성능을 고려하기 위해 고성능컨텐츠프로세서등을 사용하기도 함
참, 위에서 1) 즉, IP refragmentation만 해서 대충 해
참, 위에서 1) 즉, IP refragmentation만 해서 대충 해도, 대충 먹는 경우가 있는데, 주로 안전한 환경에서 할때는 그럴 수도 있음(이를테면, 연구소, 실험실등) 그러나, 누군가가 짜가패킷 하나 넣거나, 일부러 순서바꿔서(tcp) 패킷들을 보내거나 하면 당장 깨질 수 있음
evasion attack이 바로 이런것이지요.
* 귀차니즘이나, 대추웅이즘, 또는 눙가리공 아웅 메카니즘등을 적용해서 개발할 경우, 1)만해도 대충 돕니다. 심지어 1)도 안해도 대충 돈다는....
IP 계층에서 보면 Fregment offset을 이용하여 데이터를 순서
IP 계층에서 보면 Fregment offset을 이용하여 데이터를 순서적으로 조립하는데 TCP에서 다시 신뢰성 있게 조립(순서, 중복등 제어)을 해야하나요???
혹시 IP 계층에서는 순서가 제대로되어 조립되지 않나요???
아니면 IP계층에서 순서대로 조립해서 올린 데이터들을 다시 또 조립하는건가요???
/***************************************************
* 가장 심플한 것이 가장 아름다운 것이다.
***************************************************/
한개의 IP 패킷내에서만 순서대로 조립됩니다.IP 레이어로 보면 다수
한개의 IP 패킷내에서만 순서대로 조립됩니다.
IP 레이어로 보면 다수개의 IP패킷이 날아 다니겠지요.
이 다수개 IP는 서로 순서가 없습니다. 단지, 이중 하나의 IP패킷이 잘게 쪼개져서 날아 다니게 될때, 이를 모아주는 것이 IP 리프레그멘테이션이지요.
TCP는 이렇게 합쳐진(완전한 1개의 ) IP패킷! 다수 개의 모임이 되겠지요.
이 IP패킷간에는 순서가 바뀌기도 중복되기도 때로 손실도 있겠지요.
이를 조정(순서, 중복, 손실)하는 것도 필요하다는 얘기입니다.
좋은 답변 정말 감사드립니다.손님으로 되어있어 정중하게 인사를 못드리
좋은 답변 정말 감사드립니다.
손님으로 되어있어 정중하게 인사를 못드리네요...
감사드립니다.
앞으로 더 좋은 글 많이 부탁드릴께요...
/***************************************************
* 가장 심플한 것이 가장 아름다운 것이다.
***************************************************/
댓글 달기